6

これについていくつかの投稿があることは知っていますが、それらは約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 番目のバージョンのバグですか、それとも何か間違っていますか?

よろしくお願いします

4

1 に答える 1