Release notes

v2.37.0: 2020-06-14

  • GH449 Update a document about the Criteria API
  • GH448 Support Quarkus
  • GH447 Support the excludeNull setting for the INSERT and the UPDATE queries in the Criteria API
  • GH444 Support to associate immutable entities in the Criteria API

v2.36.0: 2020-05-25

  • GH440 Update the Criteria API document
  • GH439 Remove lambda expressions from generated code to reduce compilation time
  • GH438 Support the select expression
  • GH437 Support the literal expression for the following data types
  • GH436 Support the case expression
  • GH435 Make a select method call optional in a sub-select
  • GH432 Add the select and the selectTo methods to the Entityql and NativeSql DSLs
  • GH431 Add some string expressions
  • GH430 Polish

v2.35.0: 2020-05-17

  • GH426 Improve the Criteria API documents
  • GH425 Enhance the Criteria API
  • GH424 Generate Metamodel classes effectively
  • GH423 Reload a typeElement with its canonical name to avoid the eclipse bug
  • GH422 Optimize generation code

v2.34.0: 2020-05-10

See also Criteria API and simple-examples.

v2.33.0: 2020-05-06

See also Criteria API and simple-examples.

v2.32.0: 2020-05-04

See also Criteria API.

v2.31.0: 2020-04-29

  • GH388 Enhance the CommentContext class to accept a message
  • GH387 Support the Sql annotation officially
  • GH386 Add the “getQuery” method to the “Command” interface
  • GH384 Resolve type parameters with actual type arguments for generic types
  • GH382 Add the Criteria API
  • GH381 Replace version before build
  • GH380 Allow uncommitted files before release
  • GH379 Don’t replace the version with the snapshot version in documents
  • GH378 Allow no-args default method in Kotlin

v2.30.0: 2020-04-18

See also Migration Guide.

  • GH374 Upgrade Gradle and JUnit
  • GH371 Set new version number to the file
  • GH368 Correct the path of secretKeyRingFile
  • GH364 Split a project in two
  • GH363 Support Kotlin’s default methods
  • GH361 Use the nexus publish plugin
  • GH360 Provide a new artifact “doma-processor”

v2.29.0: 2020-04-05

  • GH353 Remove a resource bundle
  • GH352 Escape a single quotation to make format success
  • GH351 Update sample build.gradle to make it work on Gradle 6.2.2 without any warnings
  • GH350 Enable incremental annotation processing for the DataTypeProcessor
  • GH349 Upgrade to Gradle 6.2.2

v2.28.0: 2020-03-18

  • GH347 Stored functions return null when they must return the basic type of list
  • GH346 Add the DataType annotation
  • GH344 Support records
  • GH343 Fix some mistakes in document

v2.27.1: 2020-02-07

  • GH341 Fix broken link in document
  • GH340 Fixed that schema name was not used

v2.27.0: 2020-01-25

  • GH338 Reuse CharBuffer instances
  • GH332 Needs default constructor to AbstractDao to use quarkus

v2.26.0: 2019-12-29

  • GH330 Clarify support for Java 13
  • GH329 Replace table aliases in the ORDER BY clause

v2.25.1: 2019-08-25

  • GH324 Fix null dereference

v2.25.0: 2019-08-25

  • GH322 Describe settings for IntelliJ IDEA Community Edition 2019.2.1
  • GH321 Support domain mapping using ExternalDomain of Java Array
  • GH314 Upgrade google-java-format to 1.7
  • GH313 Upgrade spotless-plugin-gradle to 3.20.0
  • GH312 Clarify support for Java 12
  • GH311 Introduce wrapper classes dedicated to primitive types
  • GH310 Upgrade JUnit to 5.4.0

v2.24.0: 2019-02-23

  • GH308 Implement toString methods to make debug easy
  • GH307 Polish the org.seasar.doma.internal package
  • GH306 Remove Japanese comments
  • GH305 Register the option “doma.config.path” to suppress a warning message
  • GH304 Simplify the DefaultPropertyType class
  • GH303 Simplify generators
  • GH301 Fix compile error in procedure and function methods
  • GH300 Support bound type parameters in domain classes
  • GH299 Migrate from JUnit 3 to JUnit 5
  • GH298 Polish build script

v2.23.0: 2019-02-03

  • GH294 Support array types for bind and literal variable directives
  • GH276 Support array types for loop directives
  • GH286 Support automatic removal of unnecessary ORDER BY and GROUP BY clauses
  • GH295 Polish messages
  • GH284 Preserve the auto-commit state of a JDBC connection
  • GH283 Run tests in each annotation processor instance
  • GH296 GH293 GH292 GH291 GH290 GH289 GH288 GH287 GH285 GH282 Polish documents

v2.22.0: 2019-01-20

v2.21.0: 2019-01-06

  • GH267 Change the description of Doma
  • GH266 Remove descriptions of Doma 3
  • GH265 Polish annotation processing
  • GH264 Improve build script example
  • GH263 Translate resource bundle messages from Japanese into English
  • GH262 Translate javadoc comments from Japanese into English
  • GH261 Change the sphinx langulage option
  • GH260 Translate development.rst
  • GH259 Format with google-java-format 1.6
  • GH258 Translate docs from Japanese into English
  • GH257 Use Sphinx 1.8.2

v2.20.0: 2018-12-23

  • GH255 Support Gradle incremental annotation processing
  • GH254 Specify supported Java versions
  • GH253 Explain how to write gradle build script in Gradle 5.0
  • GH252 Polish Gradle configuration
  • GH251 Use Gradle 5.0
  • GH248 Fix mistake in abbreviation for JRE
  • GH247 Load a class with Class.forName when the context class loader fails to load the class
  • GH245 Revise wrong descriptions about @Update.excludeNull, @BatchUpdate.include and @BatchUpdate.exclude

v2.19.3: 2018-09-02

  • GH242 Remove wrapper task
  • GH241 Upgrade Gradle version
  • GH240 Refactor gradle script for eclipse
  • GH239 Resolve an external domain class by traversing class hierarchy
  • GH225 Add documents for IntelliJ IDEA
  • GH223 Fix Javadoc comment for Update#includeUnchanged

v2.19.2: 2018-03-11

  • GH220 Fix broken local transaction

v2.19.1: 2018-01-08

  • GH216 Document that the auto-generated value is set only if the identity field is either null or less than 0
  • GH215 Fix TypeDeclaration#removeOverriddenMethodDeclarations to prevent IllegalStateException

v2.19.0: 2017-11-19

  • GH211 Use CharSequence as parameter in expression functions
  • GH210 Support private methods in DAO classes

v2.18.0: 2017-10-28

  • GH208 Use javax.annotation.processing.Generated on JDK 9
  • GH207 If the result of the expression is Long, it is evaluated as Float.
  • GH206 Fix a wrong annotation parameter in a Docs example.
  • GH205 Remove full-width and _ from wild cards in Oracle dialect

v2.17.0: 2017-09-09

  • GH203 Add @TenantId to support the partitioned approach of multi-tenancy
  • GH202 Update url
  • GH200 Fix typo
  • GH199 Fix the use of the wrong class java.lang.reflect.Modifier

v2.16.1: 2017-05-14

  • GH196 Kotlin 1.1.2 を実験的にサポート
  • GH195 Oracle 12c 以降でIDENTITYを使った識別子の自動生成をサポート
  • GH194 SelectBuilder に params メソッドと literals メソッドを追加

v2.16.0: 2017-02-19

  • GH191 設定ファイルから注釈処理のオプションを読み込めるように

v2.15.0: 2017-02-05

  • GH184 Long name serial sequence
  • GH187 Eclipse 4.6.2 で検出されたワーニングを修正
  • GH188 Dao においてデフォルトメソッドのみが定義されたインタフェースを継承可能に変更

v2.14.0: 2017-01-14

  • GH183 BatchUpdateExecutor, BatchDeleteExecutor, MapBatchInsertBuilder を追加
  • GH182 エンベッダブルクラスにプロパティを定義しない場合に生成されるコードがコンパイルエラーになっていたのを修正
  • GH181 SQLテンプレートで組み立てられたSQLを扱うための @SqlProcessor を追加
  • GH180 Lombok をサポート
  • GH179 StandardExpressionFunctions#escapeがescapeCharを使用していない
  • GH177 Kotlin 1.0.6対応
  • GH176 BatchInsertExecutorを追加
  • GH175 組み込み関数の LocalDate, LocalDateTime 対応
  • GH174 Mapをパラメータとして自動でInsert文を組み立てるMapInsertBuilderを追加

v2.13.0: 2016-11-13

  • GH170 識別子をプリミティブ型にする場合の注意点を記載
  • GH167 Doma 2 における主要な変更点に記載されたクラス名の間違いを修正

v2.12.1: 2016-08-06

  • GH165 エンティティクラスの継承構造が2段階の場合に無限ループが発生する不具合を修正

v2.12.0: 2016-07-14

  • GH161 SQLファイルのキャッシュを削除するためのメソッドを追加
  • GH160 エンベッダブルクラスをネストした型として定義することをサポート
  • GH159 エンティティクラスをネストした型として定義することをサポート
  • GH158 ドキュメントのコピーライトの日付を更新
  • GH156 SQLファイルの存在チェックでパスの大文字小文字を区別するように修正
  • GH155 fix typo

v2.11.0: 2016-06-18

  • GH153 クエリビルダでリテラルの埋め込みをサポート
  • GH151 リテラル変数コメントの直後のテスト用リテラルに対するチェックを修正
  • GH150 リテラル変数コメントの機能を追加

v2.10.0: 2016-05-28

  • GH146 Embeddable なオブジェクトが null の場合に更新系の処理が失敗する不具合を修正
  • GH145 Kotlin のサポートについてドキュメントを追加
  • GH142 エンベッダブルクラスのドキュメントを追加
  • GH141 エンティティクラスが継承をしている場合の親プロパティへのアクセス方法を簡易化
  • GH140 プリミティブ型のプロパティにnullがアサインされる場合に例外が発生していた不具合をデフォルト値が設定されるように修正
  • GH139 @Embeddable をサポート
  • GH138 Kotlin でイミュータブルなエンティティを定義する際 @ParameterName を使用する必要性を除去

v2.9.0: 2016-05-16

  • GH136 更新結果を表すクラスで Kotlin の Destructuring Declarations に対応
  • GH135 注釈処理で出力するメッセージに、クラス、メソッド、フィード名など出力元の情報を追加
  • GH134 @Dao に Singleton をフィールドで提供するタイプの Config を指定することをサポート
  • GH133 kapt 1.0.1-2の実験的なサポート
  • GH132 Switching remote URLs from SSH to HTTPS
  • GH131 無名パッケージに配置したクラスの注釈処理に失敗する不具合を修正
  • GH130 テストコードの改善

v2.8.0: 2016-04-16

  • GH127 ドメインクラスをネストした型として定義することをサポート

v2.7.0: 2016-02-27

  • GH125 SelectBuilder のデフォルトの FetchType を Lazy に設定
  • GH124 間違った警告メッセージを修正
  • GH122 検索用メソッドの戻り値の型を Stream とすることを認めた
  • GH121 includeの説明が間違っていたのを修正

v2.6.2: 2016-02-11

  • GH118 SQLコメント カラムリスト展開コメント リンク修正
  • GH117 リンクに関連したJavadoc生成オプションを追加しました
  • GH116 クエリビルダのgetSql()の呼び出しでエラーが発生しないように修正
  • GH115 Spring Boot DevToolsに対応

v2.6.1: 2016-01-11

  • GH111 Revert “注釈処理で生成されるコードが冗長なジェネリクスを含む問題を修正”

v2.6.0: 2015-11-21

  • GH107 注釈処理で生成されるコードが冗長な型引数を含む問題を修正
  • GH105 Fix cause position in UniqueConstraintException’s constructor

v2.5.1: 2015-11-01

  • GH102 UnknownColumnHandler の handle() を空実装にすると NullPointerException が発生する問題を修正

v2.5.0: 2015-10-10

  • GH99 バッチ更新においてパフォーマンスが悪くなる問題をデータベースのIDENTITYを事前に予約することで解決

v2.4.1: 2015-09-12

  • GH96 埋め込み変数コメントの展開後にスペースを挿入しない

v2.4.0: 2015-08-14

  • GH93 JdbcMappingHint#getDomainClass() がドメインクラスを返さない問題を修正
  • GH89 PortableObjectTypeをジェネリクスにして、String等をvalueTypeとして指定できるように
  • GH88 JdbcLoggerのメソッドのtypoを修正。 Failuer -> Failure
  • GH87 StandardExpressionFunctionsのサブクラスにpublicなコンストラクタを追加
  • GH86 Version number spec is different from the document
  • GH84 populate を使ったメソッドで DOMA4122 が出る問題を修正
  • GH81 リソースバンドルが取得できない場合はデフォルトのリソースバンドルにフォールバックする

v2.3.1: 2015-05-30

  • GH79 SQLファイルを使った更新がスキップされる問題を修正

v2.3.0: 2015-05-23

  • GH75 SQLファイルでUPDATE文のSET句を自動生成
  • GH74 PostgresDialectでID生成エラーが発生する問題を修正

v2.2.0: 2015-03-28

  • GH71 インターフェースにも@Domainで注釈できるようにしました
  • GH70 EntityListenerの取得はEntityListenerProviderを介するようにしました
  • GH67 SQL Server の OPTION 句が存在するとページングが正しく実行されない問題を修正しました
  • GH66 ネーミング規約の適用をコンパイル時から実行時に変更
  • GH64 イミュータブルなエンティティの取得でNullPointerException が発生するバグを修正しました
  • GH61 SQL Server 2012 から追加された OFFSET-FETCH をページング処理に使う
  • GH60 Mssql2008Dialect の getName() が返す値を変更しました
  • GH59 Windows環境でテストが失敗する問題を修正
  • GH58 StringUtilのfromCamelCaseToSnakeCaseで、カラム名に数字が含まれている場合意図している結果にならない

v2.1.0: 2014-12-30

  • GH51 LocalTransactionManager#notSupported()が新規のトランザクションを作成する不具合を修正しました
  • GH50 SQLコメントを使ってSQLに識別子を追記できるようにしました
  • GH49 Gradleのプロジェクトの名前を”doma”に設定しました
  • GH48 /*%expand*/ の間のスペースはaliasとみなさないようにしました

v2.0.1: 2014-08-06

  • DomainConverter の第2型引数に byte[] を指定すると注釈処理でコンパイル エラーになる問題を修正しました

v2.0.0: 2014-07-02

  • UnitOfWork を削除しました

v2.0-beta-5: 2014-06-07

  • List<Optional<Emp>>List<Optional<Map<String, Object>>> を戻り値とする Dao メソッドは注釈処理でコンパイルエラーにしました
  • Entity 更新後に OriginalStates へ変更が反映されない問題を修正しました
  • エンティティの識別子の値がすでに設定されている場合は自動生成処理を実行しないようにしました
  • カラムリスト展開コメント で DOMA4257 エラーになる問題を修正しました
  • SQLのログ出力方法をアノテーションで制御できるようにしました
  • Dao から出力されるログのメッセージを詳細化しました
  • UtilLoggingJdbcLogger のロガーの名前をクラスの完全修飾名に変更しました
  • SQL実行時にSQLファイルのパスがログに出力されない問題を修正しました

v2.0-beta-4: 2014-05-04

  • Pluggable Annotation Processing API の Visitor を Java 8 用のものへバージョンアップしました
  • 空の java.util.Iterable を IN 句にバインドする場合は SQL の null として扱うようにしました
  • java.sql.SQLXML に対応しました
  • LocalTransaction で指定したセーブポイント「以降」を削除すべき箇所で「以前」を削除している不具合を修正しました
  • LocalTransaction でセーブポイント削除時のログが間違っている不具合を修正しました
  • Entity のプロパティの型を byte 配列にすると注釈処理に失敗する不具合を修正しました

v2.0-beta-3: 2014-04-03

  • 検索結果を で処理できるようにしました。
  • LocalTransactionManager から TransactionManager インタフェースを抽出しました。
  • Config で指定した設定が一部無視される不具合を修正しました。
  • マップのネーミング規約を一律制御するためのインタフェース MapKeyNaming を追加しました。
  • java.time.LocalDatejava.time.LocalTimejava.time.LocalDateTime を基本型として使用できるようにしました。
  • JdbcLogger の実装の差し替えを容易にするために AbstractJdbcLogger を追加しました。
  • SelectStrategyType の名前を SelectType に変更しました。