Doma 2 における主要な変更点¶
Doma 1.36.0 からの変更点の内、主なものを示しています。
設定¶
Config
の実装クラスをシングルトンとして扱えるように@SingletonConfig
が追加されました。- トランザクション処理を簡易化するために
TransactionManager
が追加されました。 - クエリをカスタマイズ可能にするために
QueryImplementors
とCommandImplementors
が追加されました。 - 結果セットに未知のカラムが含まれていた場合の挙動をカスタマイズ可能にするために
UnknownColumnHandler
が追加されました。 - マップのキーのネーミング規約を一律で解決できるように
MapKeyNaming
が追加されました。 DomaAbstractConfig
が削除されました。 このクラスが提供していた実装はConfig
のデフォルトメソッドで提供されるようになりました。DefaultClassHelper
が削除されました。 このクラスが提供していた実装はClassHelper
のデフォルトメソッドで提供されるようになりました。NullRequiresNewController
が削除されました。 このクラスが提供していた実装はRequiresNewController
のデフォルトメソッドで提供されるようになりました。
基本型¶
Object
型が基本型と認識されるようになりました。java.time.LocalDate
型が基本型と認識されるようになりました。java.time.LocalTime
型が基本型と認識されるようになりました。java.time.LocalDateTime
型が基本型と認識されるようになりました。
ドメインクラス¶
@Domain
を使ってドメインクラスを作った場合、デフォルトではnull
を受け入れなくなりました。null
を受け入れるには@Domain
のacceptNull
要素にtrue
の指定が必要です。
エンティティクラス¶
- 実験的な扱いだったイミュータブルなエンティティが正式にサポートされました。
- プロパティに基本型やドメインクラスを要素とする
java.util.Optional
を定義できるようになりました。 - プロパティに
java.util.OptionalInt
を定義できるようになりました。 - プロパティに
java.util.OptionalLong
を定義できるようになりました。 - プロパティに
java.util.OptionalDouble
を定義できるようになりました。
Daoインタフェース¶
- パラメータや戻り値の型に
java.util.Optional
を定義できるようになりました。 - パラメータや戻り値の型に
java.util.OptionalInt
を定義できるようになりました。 - パラメータや戻り値の型に
java.util.OptionalLong
を定義できるようになりました。 - パラメータや戻り値の型に
java.util.OptionalDouble
を定義できるようになりました。 java.util.stream.Stream
を使って検索結果を処理できるようになりました。java.util.stream.Collector
を使って検索結果を処理できるようになりました。@Delegate
が廃止になり、代わりにデフォルトメソッドが使えるようになりました。IterationCallback
を使った検索が禁止されました。 代わりにjava.util.stream.Stream
を使った検索をしてください。