Domaの互換性に関する情報

この文書では、既存のDomaをアップグレードする際の注意点を記します。

バージョンAからバージョンBにアップグレードする場合には、バージョン間に 記載されている注意点に従って作業を行なえば良いようになっています。

Doma バージョン1.36.0

1.35.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.35.0

1.34.0 からの重要な変更は以下のとおりです。

Doma

次のインタフェースがジェネリック化されました。

使用例は以下の通りです。

public class EmployeeEntityListener implements EntityListener<Employee> {
   @Override
   public void preDelete(Employee entity, PreDeleteContext<Employee> context) {
       ...
   }
   @Override
   public void preInsert(Employee entity, PreInsertContext<Employee> context) {
       ...
   }
   ...
}
 

エンティティクラスに継承関係があり、親エンティティクラスに指定したエンティティリスナークラスを子のエンティティクラスに引き継ぐ場合、エンティティリスナークラスに型パラメータの定義が必須となりました。 たとえば、次のような継承関係を考えます。

@Entity(listener = ParentListener.class)
public class ParentEntity {
  ...
}
@Entity
public class ChildEntity extends ParentEntity {
  ...
}

このとき、ParentListenerには、次のようにChildEntityを受け取れるような型パラメータの定義が必要です。

public class ParentListener<E extends ParentEntity> implements EntityListener<E> {
   @Override
   public void preDelete(E entity, PreDeleteContext<E> context) {
       ...
   }
   @Override
   public void preInsert(E entity, PreInsertContext<E> context) {
       ...
   }
   ...
}
 

org.seasar.doma.jdbc.builder.SelectBuilderの次のメソッドについて名前を変更しました。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.34.0

1.33.0 からの重要な変更は以下のとおりです。

Doma

エンティティクラスが他のエンティティクラスを継承する場合、@Entityのlistener要素やnaming要素を親から引き継ぐようになりました。

@Entity(listener = ParentListener.class, naming = NamingType.UPPER_CASE)
public class ParentEntity {
  ...
}
@Entity
public class ChildEntity extends ParentEntity {
  ...
}

上記のような継承関係がある場合、上のChildEntityを注釈する@Entityの要素には何も指定されていませんが、次のような指定がある場合と同等です。

@Entity(listener = ParentListener.class, naming = NamingType.UPPER_CASE)
public class ChildEntity extends ParentEntity {
  ...
}

listener要素やnaming要素を親から引き継ぎたくない場合は、明示的に値を設定してください。それぞれの要素のデフォルト値を設定すれば、以前のバージョンで何も指定しなかった場合と同等の挙動になります。

@Entity(listener = NullEntityListener.class, naming = NamingType.NONE)
public class ChildEntity extends ParentEntity {
  ...
}

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.33.0

1.32.0 からの重要な変更は以下のとおりです。

Doma

@OriginalStatesが注釈されたEntityを継承した場合、継承したクラスにおいてもEntity取得時の状態が管理されるようになりました。

1.32.0において、意図的にそのような継承関係を使用している場合、影響を受けます。たとえば、次のような継承関係です。

@Entity
@Table(name = "AAA")
public class ParentEntity {
    Integer aaa;
    Integer bbb; 
    @OriginalStates
    ParentEntity states;
}
@Entity
@Table(name = "BBB")
public class ChildEntity extends ParentEntity {
    Integer ccc;
}

このような継承関係がある場合に、1.32.0以前と同等の挙動にするには、以下に示すようにParentEntityから@OriginalStatesを除去してChildEntity に影響を与えないようにし、@OriginalStatesをつけた別Entity(StatesManagedParentEntity)を作成してください。そして、@OriginalStatesで管理された値が必要な処理には新規作成したStatesManagedParentEntityを使ってください。StatesManagedParentEntityはParentEntityを継承するようにします。こうすることで、修正箇所を最小限にできます。

@Entity
@Table(name = "AAA")
public class ParentEntity {
    Integer aaa;
    Integer bbb;
}
@Entity
@Table(name = "BBB")
public class ChildEntity extends ParentEntity {
    Integer ccc;
}
@Entity
@Table(name = "AAA")
public class StatesManagedParentEntity extends ParentEntity {
    @OriginalStates
    StatesManagedParentEntity states;
}

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.32.0

1.31.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.31.0

1.30.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.30.0

1.29.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

Doma-Tools

特にありません。

Doma バージョン1.29.0

1.28.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.28.0

1.27.1 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.27.1

1.27.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.27.0

1.26.0 からの重要な変更は以下のとおりです。

Doma

 

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.26.0

1.25.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.25.0

1.24.0 からの重要な変更は以下のとおりです。

Doma

インタフェース org.seasar.doma.jdbc.domain.DomainType に新しいメソッド getValueClass が追加されました。org.seasar.doma.jdbc.domain.DomainType の実装クラスでは、このメソッドを実装してください

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.24.0

1.23.0 からの重要な変更は以下のとおりです。

Doma

Entityクラスごとにaptで生成されるEntityTypeクラスのpublicなフィールドの名前が変更されました。prefixとして$が付与されるようになりました。

この変更により、EntityTypeのpublicなフィールドを直接利用しているアプリケーションは影響を受けます。直接利用していないアプリケーションは影響を受けません。

1.23.0以前と互換性のあるフィールド名を使用したい場合は、注釈処理のオプションで、keyに「entity.field.prefix」、valueに「none」を指定してください。

http://doma.seasar.org/reference/apt.html

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.23.0

1.22.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.22.0

1.21.1 からの重要な変更は以下のとおりです。

Doma

   @Override
   public ExceptionSqlLogType getExceptionSqlLogType() {
       return ExceptionSqlLogType.FORMATTED_SQL;
   }

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.21.1

1.21.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.21.0

1.20.1 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.20.1

1.20.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.20.0

1.19.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.19.0

1.18.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.18.0

1.17.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.17.0

1.16.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.16.0

1.15.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.15.0

1.14.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.14.0

1.13.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.13.0

1.12.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.12.0

1.11.0 からの重要な変更は以下のとおりです。

Doma

@EnumDomain
public enum JobType { ... }

EnumDomainを利用した上記のコードは、Domainを利用することで下記のように記述できます。

@Domain(factoryMethod = "of")
public enum JobType { ... }

完全なコード例については、ドキュメントを参照してください。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.11.0

1.10.2 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

Doma-Tools

特にありません。

Doma バージョン1.10.2

1.10.1 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.10.1

1.10.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.10.0

1.9.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.9.0

1.8.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.8.0

1.7.0 からの重要な変更は以下のとおりです。

Doma

特にありません。

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.7.0

1.6.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

Doma-Tools

特にありません。

Doma バージョン1.6.0

1.5.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.5.0

1.4.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.4.0

1.3.1 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.3.1

1.3.0 からの重要な変更はありません。

Doma バージョン1.3.0

1.2.1 からの重要な変更はありません。

Doma バージョン1.2.1

1.2.0 からの重要な変更はありません。

Doma バージョン1.2.0

1.1.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。

Doma バージョン1.1.0

1.0.0 からの重要な変更は以下のとおりです。

Doma

Doma-Gen

特にありません。

Doma-Tools

特にありません。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS