01:57:41)追加された行はこの色です。削除された行はこの色です。[#ke7ed8db]この文書では、既存のDomaをアップグレードする際の注意点を記します。バージョンAからバージョンBにアップグレードする場合には、バージョン間に記載されている注意点に従って作業を行なえば良いようになっています。重要な変更は以下のとおりです。[#z2f7366d]特にありません。[#e884d098]特にありません。[#p4b7adb0]特にありません。重要な変更は以下のとおりです。[#k1c85999]特にありません。[#z97294ca]特にありません。[#h7fbbead]特にありません。重要な変更は以下のとおりです。[#h7c41205]特にありません。[#p980ec8b]特にありません。[#be1868d5]特にありません。重要な変更は以下のとおりです。[#b9332400]次のインタフェースがジェネリック化されました。org.seasar.doma.jdbc.entity.PostDeleteContext使用例は以下の通りです。}#brエンティティクラスに継承関係があり、親エンティティクラスに指定したエンティティリスナークラスを子のエンティティクラスに引き継ぐ場合、エンティティリスナークラスに型パラメータの定義が必須となりました。次のような継承関係を考えます。}このとき、ParentListenerには、次のようにChildEntityを受け取れるような型パラメータの定義が必要です。}#brorg.seasar.doma.jdbc.builder.SelectBuilderの次のメソッドについて名前を変更しました。[#w14ca719]特にありません。[#j44d24c5]特にありません。重要な変更は以下のとおりです。[#h26dd4bf]エンティティクラスが他のエンティティクラスを継承する場合、@Entityのlistener要素やnaming要素を親から引き継ぐようになりました。}上記のような継承関係がある場合、上のChildEntityを注釈する@Entityの要素には何も指定されていませんが、次のような指定がある場合と同等です。}listener要素やnaming要素を親から引き継ぎたくない場合は、明示的に値を設定してください。それぞれの要素のデフォルト値を設定すれば、以前のバージョンで何も指定しなかった場合と同等の挙動になります。[#u6119f59]特にありません。[#f00ee43b]特にありません。重要な変更は以下のとおりです。[#gfd753e9]@OriginalStatesが注釈されたEntityを継承した場合、継承したクラスにおいてもEntity取得時の状態が管理されるようになりました。1.32.0において、意図的にそのような継承関係を使用している場合、影響を受けます。次のような継承関係です。影響を与えないようにし、@OriginalStatesをつけた別Entity(StatesManagedParentEntity)を作成してください。@OriginalStatesで管理された値が必要な処理には新規作成したStatesManagedParentEntityを使ってください。StatesManagedParentEntityはParentEntityを継承するようにします。することで、修正箇所を最小限にできます。[#u6119f59]特にありません。[#f00ee43b]特にありません。重要な変更は以下のとおりです。[#nff8007d]特にありません。[#z38fadcf]特にありません。[#b0aaebf2]特にありません。重要な変更は以下のとおりです。[#g988f3db]特にありません。[#z36864b4]特にありません。[#g7c0f190]特にありません。重要な変更は以下のとおりです。Engineのバージョン1.3.171に最適化しました。これまでと同等の挙動が望ましい場合は、設定クラスにてorg.seasar.doma.jdbc.dialect.H212126Dialectを使用してください。2012で導入されたシーケンスを使って識別子の自動生成ができるようになりました。2012を使う場合は、設定クラスにてorg.seasar.doma.jdbc.dialect.MssqlDialectを使用してください。2012を使う場合は、タスクのdialectNameパラメータに"mssql"を指定してください。[#e71d8763]特にありません。重要な変更は以下のとおりです。[#a222a3a1]特にありません。[#x21b6aa2]特にありません。[#n50c4875]特にありません。重要な変更は以下のとおりです。[#y86f849b]特にありません。[#ra74f629]特にありません。[#pfea4cd8]特にありません。重要な変更は以下のとおりです。[#u9690ae1]特にありません。[#r9d76b5b]特にありません。[#n078ddf0]特にありません。重要な変更は以下のとおりです。org.seasar.doma.jdbc.Configに次のメソッドが追加されました。getClassHelper();--org.seasar.doma.jdbc.ClassHelperは、アプリケーションサーバやフレームワークに依存したクラスの扱いを抽象化するためのインタフェースとして導入されました。--これまでまったく同じ振る舞いをさせるには、getClassHelperメソッドでorg.seasar.doma.jdbc.DefaultClassHelperのインスタンスを返すようにしてください。--Configの実装にorg.seasar.doma.jdbc.DomaAbstractConfigを使っている場合は、特に変更は不要です。#br-いくつかのメソッドが非推奨になりました。非推奨になったのは以下のメソッドです。それぞれについて代わりに以下のメソッドを使用してください。これまでと同じ振る舞いをさせるには、それぞれのメソッドの2番目の引数にorg.seasar.doma.jdbc.DefaultClassHelperのインスタンスを渡してください。[#f896f2a4]特にありません。[#j7f5b701]特にありません。重要な変更は以下のとおりです。[#vcc2e025]特にありません。[#yae5c402]特にありません。[#z9809759]特にありません。重要な変更は以下のとおりです。[#yae5c402]特にありません。[#z9809759]特にありません。重要な変更は以下のとおりです。[#o4e01d46]Entityクラスごとにaptで生成されるEntityTypeクラスのpublicなフィールドの名前が変更されました。prefixとして$が付与されるようになりました。この変更により、EntityTypeのpublicなフィールドを直接利用しているアプリケーションは影響を受けます。利用していないアプリケーションは影響を受けません。1.23.0以前と互換性のあるフィールド名を使用したい場合は、注釈処理のオプションで、keyに「entity.field.prefix」、valueに「none」を指定してください。[#i2fd0e89]特にありません。[#e023483b]特にありません。重要な変更は以下のとおりです。[#g0d875a8]特にありません。[#bcb81273]特にありません。[#f17f7357]特にありません。重要な変更は以下のとおりです。実装クラスでは、このメソッドを実装してください。これまでと同じ挙動をさせるための実装は以下のとおりです。[#w57aa96c]特にありません。[#aefe8845]特にありません。重要な変更は以下のとおりです。[#ve469d05]特にありません。[#ea92bc35]特にありません。[#m5ae9a6a]特にありません。重要な変更は以下のとおりです。[#xb3d2a12]特にありません。[#w6e6d70c]特にありません。[#l0bf4df0]特にありません。重要な変更は以下のとおりです。[#w049ca11]特にありません。[#x0c43de6]特にありません。[#j4624d96]特にありません。重要な変更は以下のとおりです。[#w4dbaf84]-org.seasar.doma.wrapper.WrapperインタフェースにsetAccessorメソッドが追加されました。Wrapperをimplementsしている場合は、実装してください。-以下のクラスについて、型パラメータとコンストラクタが変更されました。利用している場合は、変更に追随してください。[#l4e2c5a3]特にありません。[#m0a7fb61]特にありません。重要な変更は以下のとおりです。[#s7915015]特にありません。[#gd7a88c1]特にありません。[#t2ec2544]特にありません。重要な変更は以下のとおりです。[#ud63e049]特にありません。[#m511cc65]特にありません。[#k4783a74]特にありません。重要な変更は以下のとおりです。[#c197a6f7]特にありません。[#vb71f907]特にありません。[#k1208170]特にありません。重要な変更は以下のとおりです。[#o63e9d4a]-org.seasar.doma.jdbc.SqlNodeインタフェースのaddNodeメソッドとcopyメソッドが非推奨になりました。将来のバージョンで削除される可能性があります。[#k9af1774]特にありません。[#l9a1acfc]特にありません。重要な変更は以下のとおりです。[#o63e9d4a]特にありません。[#k9af1774]特にありません。[#l9a1acfc]特にありません。重要な変更は以下のとおりです。[#bdfa4011]特にありません。[#e261f43e]特にありません。[#n4cc8340]特にありません。重要な変更は以下のとおりです。[#efbb5ad9]特にありません。[#z6e587f2]特にありません。[#nbbad74b]特にありません。重要な変更は以下のとおりです。[#xfd20468]-注釈型org.seasar.doma.EnumDomainが非推奨になりました。既存のコードは動作しますが、新規に作成する場合は代わりにorg.seasar.doma.Domainを使用してください。}EnumDomainを利用した上記のコードは、Domainを利用することで下記のように記述できます。}完全なコード例については、[[ドキュメント>http://doma.seasar.org/reference/domain.html#%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88%E3%83%AA%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%A7%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B]]を参照してください。[#y08a92f4]特にありません。[#r94370d0]特にありません。重要な変更は以下のとおりです。[#n23011b5]-インタフェースorg.seasar.doma.jdbc.entity.EntityListenerが変更されています。以下の点について実装クラスを修正してください。preUpdate)に2番目のパラメータが追加された。postUpdate)が追加された。[#y08a92f4]-テンプレートファイルのselectById.sql.ftlとselectByIdAndVersion.sql.ftlが修正されています。既存のバージョンのテンプレートファイルを拡張して使用している場合は、修正箇所を取り込んでください。テンプレートファイルは、配布ファイルのresources/tempalteディレクトリに含まれています。[#r94370d0]特にありません。重要な変更は以下のとおりです。[#td673ce7]特にありません。[#ta9d64dd]特にありません。[#kb7cf89b]特にありません。重要な変更は以下のとおりです。[#r6caf2e0]特にありません。[#i5bbeed3]特にありません。[#vc7896ec]特にありません。重要な変更は以下のとおりです。[#g849df6f]特にありません。[#h876dac2]特にありません。[#o7de5301]特にありません。重要な変更は以下のとおりです。[#gceca342]特にありません。[#x994a90c]特にありません。[#n9747d3d]特にありません。重要な変更は以下のとおりです。[#x63fd3f5]特にありません。[#aa91dc84]特にありません。[#e5aab970]特にありません。重要な変更は以下のとおりです。[#q8cb1cc5]-@Update(sqlFile=true)、@BatchUpdate(sqlFile=true)、@Delete(sqlFile=true)、@BatchDelete(sqlFile=true)の場合にも、特定の条件下で楽観的排他制御のチェックを行なうようにしました。--これまでどおり楽観的排他制御を無効にするには、それぞれのアノテーションのignoreVersion要素にtrueを設定してください。-@Insert(sqlFile=true)、@BatchInsert(sqlFile=true)、@Update(sqlFile=true)、@BatchUpdate(sqlFile=true)、@Delete(sqlFile=true)、@BatchDelete(sqlFile=true)の場合にも、特定の条件下でエンティティリスナーを呼び出すようにしました。--これまでどおりエンティティリスナーを呼び出さないようにするには、エンティティリスナーを指定されたエンティティクラスの代わりに、エンティティリスナーを設定していない別のエンティティクラスかDTOクラスを使用してください。-@Updateと@BatchUpdateのincludeVersion要素を非推奨にし、代わりにignoreVersion要素を追加しました。--includeVersion要素の使用はやめ、ignoreVersion要素を利用してください。includeVersion要素は将来的に削除されます。[#e1503fe7]-entity.ftlに代表されるテンプレートファイルが修正されています。既存のバージョンのテンプレートファイルを拡張して使用している場合は、修正箇所を取り込んでください。テンプレートファイルは、配布ファイルのresources/tempalteディレクトリに含まれています。[#m3f029f0]特にありません。重要な変更は以下のとおりです。[#q8cb1cc5]-インタフェースorg.seasar.doma.jdbc.JdbcLoggerに以下のメソッドを追加しました。実装クラスがある場合は修正してください。実装方法は、org.seasar.doma.jdbc.UtilLoggingJdbcLoggerを参考にしてください。[#e1503fe7]特にありません。[#m3f029f0]特にありません。重要な変更は以下のとおりです。[#k708d4f1]-org.seasar.doma.wrapper.WrapperインタフェースにgetDefaultメソッドを追加しました。org.seasar.doma.wrapper.Wrapperインタフェースを実装しているクラスがある場合は、getDefaultメソッドを実装してください。-基本型、基本型のList、ドメインクラスを返す@Selectが注釈されたDaoメソッドに対応するSQLで、SELECTで戻せるのは単一のカラムに限定しました。該当するSQLで、複数のカラムをSELECT句に記述している場合は、修正をお願いします。[#e1503fe7]特にありません。[#m3f029f0]特にありません。重要な変更は以下のとおりです。