Hibernate embeddables: Komponente Eigenschaft nicht gefunden

Ich versuche, JPA @Embeddables mit Hibernate. Das Unternehmen und die einbettbaren beide haben eine Eigenschaft namens id:

@MappedSuperclass
public abstract class A {
    @Id
    @GeneratedValue
    long id;
}

@Embeddable
public class B extends A {

}

@Entity
public class C extends A {
    B b;
}

Dies wirft ein org.hibernate.MappingException: component property not found: id.

Möchte ich vermeiden, mit @AttributeOverrides. Ich habe also versucht spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.DefaultComponentSafeNamingStrategy (ich bin mit Spring Boot). Dies hatte keinen Effekt (gleiche Ausnahme). Ich hingegen vermute, dass die Einstellung nicht ignoriert, da die Angabe einer nicht vorhandenen Klasse nicht zu einer Ausnahme.

Das seltsame ist, sogar mit dieser Variante

@Entity
public class C extends A {
    @Embedded
    @AttributeOverrides( {
        @AttributeOverride(name="id", column = @Column(name="b_id") ),
    } )
    B b;
}

Ich bekomme immer noch den gleichen Fehler.

InformationsquelleAutor Erik Hofer | 2016-08-19
Schreibe einen Kommentar