5
Ich versuche, eine Abfrage zu schreiben, um ein Unterklassenattribut zu suchen, das nicht in seiner Oberklasse ist und alle Objekte der Oberklasse zurückgibt. Momentan erhalte ich eine NullPointerException, wenn ich person.get ("specialAttribute") versuche und mache.Wie nach Subklassenattribut mit einem JPA CriteriaQuery suchen?
@Inheritance(strategy = InheritanceType.JOINED)
@Entity
public abstract class Person {
public String searchableAttribute;
}
@Entity
@Table(name = "normal_person")
public class NormalPerson extends Person {
}
@Entity
@Table(name = "special_person")
public class SpecialPerson extends Person {
@Column(nullable = false, unique = true)
public String specialAttribute;
}
// Controller method
Root<Person> person = query.from(Person.class);
query.where(
builder.or(
builder.like(person.<String>get("specialAttribute"), "foo"),
builder.like(person.<String>get("searchableAttribute"), "foo")
)
);