Java Hibernate:org.Hibernate.QueryException

Java Hibernate:org.Hibernate.QueryException,java,hibernate,spring-boot,orm,hibernate-mapping,Java,Hibernate,Spring Boot,Orm,Hibernate Mapping,我有一个org.hibernate.QueryException,我很难理解为什么 hibernate未解析的属性langue_id在我的实体ConditionElement中定义 StackTrace Caused by: org.hibernate.QueryException: could not resolve property: langue_id of: fr.sita.g2fm.domain.referentiel.Conditionnement at org.hibern

我有一个org.hibernate.QueryException,我很难理解为什么

hibernate未解析的属性langue_id在我的实体ConditionElement中定义

StackTrace

Caused by: org.hibernate.QueryException: could not resolve property: langue_id of: fr.sita.g2fm.domain.referentiel.Conditionnement
    at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:62) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:56) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1805) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.loader.criteria.EntityCriteriaInfoProvider.getType(EntityCriteriaInfoProvider.java:39) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathInfo(CriteriaQueryTranslator.java:228) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.loader.criteria.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.java:212) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.loader.criteria.CriteriaQueryTranslator.<init>(CriteriaQueryTranslator.java:94) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:71) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1760) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
    at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
最后我的道中的方法

  @Override
  public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue_id", "l", JoinType.LEFT_OUTER_JOIN);

    return criteria.list();
  }
@覆盖
公共列表查找(ConditionnementCriteria ConditionnementCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.language\u id”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}
你知道是什么导致了这个异常吗


谢谢您的帮助。

c.langue\u id
更改为
c.langue
,如下所示,因为hibernate无法找到名为
langue\u id
的列

public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue", "l", JoinType.LEFT_OUTER_JOIN);

    return criteria.list();
  }
公共列表查找(ConditionEntCriteria ConditionEntCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.langue”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}

c.langue\u id
更改为
c.langue
,如下所示,因为hibernate无法找到名为
langue\u id
的列

public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue", "l", JoinType.LEFT_OUTER_JOIN);

    return criteria.list();
  }
公共列表查找(ConditionEntCriteria ConditionEntCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.langue”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}

问题是hibernate在
ConditionElement
中找不到列
c.language\u id
的映射,尽管表中存在列。您应该将
c.langue\u id
更改为
c.langue

public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue", "l", JoinType.LEFT_OUTER_JOIN);

    return criteria.list();
  }
公共列表查找(ConditionEntCriteria ConditionEntCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.langue”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}

问题是hibernate在
ConditionElement
中找不到列
c.language\u id
的映射,尽管表中存在列。您应该将
c.langue\u id
更改为
c.langue

public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue", "l", JoinType.LEFT_OUTER_JOIN);

    return criteria.list();
  }
公共列表查找(ConditionEntCriteria ConditionEntCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.langue”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}

例外情况很简单,它说:

原因:org.hibernate.QueryException:无法解析属性:language_id of:fr.sita.g2fm.domain.referentiel.conditionment

所以问题是
Hibernate
conditionment
实体中找不到属性
language\u id
,这是因为
Hibernate
是一个So,它处理
对象/实体
,而不是
,因此,它将查找类
属性
,而不是表

在您的实体中,您有:

private Langue langue;
因此,您需要进行以下查询:

@Override
public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue", "l", JoinType.LEFT_OUTER_JOIN);
    return criteria.list();
}
@覆盖
公共列表查找(ConditionnementCriteria ConditionnementCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.langue”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}

例外情况很简单,它说:

原因:org.hibernate.QueryException:无法解析属性:language_id of:fr.sita.g2fm.domain.referentiel.conditionment

所以问题是
Hibernate
conditionment
实体中找不到属性
language\u id
,这是因为
Hibernate
是一个So,它处理
对象/实体
,而不是
,因此,它将查找类
属性
,而不是表

在您的实体中,您有:

private Langue langue;
因此,您需要进行以下查询:

@Override
public List<Conditionnement> find(ConditionnementCriteria conditionnementCriteria) {
    Criteria criteria = getHibernateSession().createCriteria(Conditionnement.class, "c");
    criteria.createCriteria("c.langue", "l", JoinType.LEFT_OUTER_JOIN);
    return criteria.list();
}
@覆盖
公共列表查找(ConditionnementCriteria ConditionnementCriteria){
Criteria=getHibernateSession().createCriteria(Conditionnement.class,“c”);
createCriteria(“c.langue”,“l”,JoinType.LEFT\u OUTER\u JOIN);
返回条件。list();
}

c.language\u id
目前不存在。尝试使用
c.langue
。当您创建查询/标准时,Hibernate会选择实际的属性名,而不是数据库中的基础列名。您是否有Langue的DB模式?
c.Langue\u id
不存在。尝试使用
c.langue
。当您创建查询/标准时,Hibernate会选择实际的属性名,而不是数据库中的基础列名。您有Langue的DB模式吗?