Я пытаюсь получить данные таблицы, созданной с помощью Spring Data JPA, рассматриваемая таблица относится к абстрактному классу, который имеет поле дискриминатора «type_org» для идентификации подклассов, но, к сожалению, когда я пытаюсь получитьданные, основанные на этом поле дискриминатора, показывают следующую ошибку:
org.hibernate.QueryException: could not resolve property: type_org of: gn.traore.demo.entities.Organisation
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:73) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:67) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1982) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.tree.FromElementType.getPropertyType(FromElementType.java:393) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.tree.FromElement.getPropertyType(FromElement.java:509) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.tree.DotNode.getDataType(DotNode.java:687) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.tree.DotNode.prepareLhs(DotNode.java:270) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.tree.DotNode.resolve(DotNode.java:210) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:1045) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1290) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4706) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:4174) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:2138) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:815) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:609) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:313) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:261) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:271) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:191) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
... 205 common frames omitted
Вот абстрактный класс:
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE_ORG",discriminatorType=DiscriminatorType.STRING, length=4)
public abstract class Organisation implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue
private Long id;
private String nom;
private String email;
private String adresse;
@OneToOne(mappedBy = "organisation")
private Compte compte;
@JsonIgnore
@ManyToOne
@JoinColumn(name="id_admin_PLTF")
private AdminPlateforme adminPLTF;
/**
*
*/
public Organisation() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param nom
* @param email
* @param adresse
*/
public Organisation(String nom, String email, String adresse, AdminPlateforme adminPLTF) {
super();
this.nom = nom;
this.email = email;
this.adresse = adresse;
this.adminPLTF = adminPLTF;
}
/**
* @return the id
*/
public Long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return the nom
*/
public String getNom() {
return nom;
}
/**
* @param nom the nom to set
*/
public void setNom(String nom) {
this.nom = nom;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return the adresse
*/
public String getAdresse() {
return adresse;
}
/**
* @param adresse the adresse to set
*/
public void setAdresse(String adresse) {
this.adresse = adresse;
}
/**
* @return the compte
*/
public Compte getCompte() {
return compte;
}
/**
* @param compte the compte to set
*/
public void setCompte(Compte compte) {
this.compte = compte;
}
/**
* @return the adminPLTF
*/
public AdminPlateforme getAdminPLTF() {
return adminPLTF;
}
/**
* @param adminPLTF the adminPLTF to set
*/
public void setAdminPLTF(AdminPlateforme adminPLTF) {
this.adminPLTF = adminPLTF;
}
}
А вот интерфейс DAO, содержащий запрос:
@RepositoryRestResource
public interface OrganisationRepository extends JpaRepository<Organisation, Long> {
@Query("SELECT o FROM Organisation o WHERE o.type_org=:type")
public Organisation findOrganisation(@Param("type")String type);
}
Любые идеи, пожалуйста ??