これについていくつかの投稿があることは知っていますが、それらは約1年であり、応答はありません. 実際には、PostgreSQL 8.4 で Hibernate 4.2.1.Final を使用しています。このような2つのエンティティがあります
エンティティ A (最上位階層クラス)
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Polymorphism(type = PolymorphismType.EXPLICIT)
public class A {
@Id
@GeneratedValue
private Long id;
public A() {
}
public A(Long id) {
super();
this.id = id;
}
// Setters, getteres, hashCode and equals
}
エンティティ B (サブクラス)
@Entity
public class B extends A{
String value;
public B(){
}
public B(String value) {
super();
this.value = value;
}
public B(Long id, String value) {
super(id);
this.value = value;
}
// Setters, getteres, hashCode and equals
}
ご覧のとおり、Aエンティティには注釈が付けられていますPolymorphismType.EXPLICIT
が、トップクラスを取得すると
ArrayList<A> lista = (ArrayList<A>) session.createCriteria(A.class).list();
プロパティを使用して B サブクラスも取得していString value
ます。実際、SQL ステートメントにはleft outer join B
. これはまだ Hibernate の 4 番目のバージョンのバグですか、それとも何か間違っていますか?
よろしくお願いします