org.hibernate.QueryException - 无法解析属性

man*_*her 2 mapping hibernate haskell-criterion

我正在尝试使用Hibernate连接到数据库.

此当前表具有以下布局:

  (field1, field2, field3, optional1, optioanl2...)
Run Code Online (Sandbox Code Playgroud)

其中field1,field2,field3都是外键,并且一起构成一个复合键.

我有以下课程:

@Entity
@Table(name = "db_table_mainRecords")
public class MainRecord implements Serializable{
    @EmbeddedId
    private MainRecordKey   lqk;
    @Transient
    private String          field1;
    @Transient
    private int         field2;
    @Transient
    private int         field3;
    @Column(name = "optional_1")
    private double          optional1;
    @Column(name = "optional_2")
    private double          optional2;

....
  // Getters and setters for all fields, including fields within MainClassKey
....
}
Run Code Online (Sandbox Code Playgroud)

随之而来:

@Embeddable
@Table(name = "db_table_mainRecords")
public class MainRecordKey implements Serializable{
    @Column(name = "field1")
    private String field_1; 
    @Column(name = "field_2")
    private int field2;
    @Column(name = "field_3")
    private int field3;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

org.hibernate.QueryException - 无法解析org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67)中的属性:field3:path.MainRecord

这是我的Bo/dao代码

  public List<MainRecord> getMainRecords(int e){
        Criterion crit1 = Restrictions.eq("field3", e);
        ArrayList<MainRecord> list = (ArrayList<MainRecord>) dao.getMainRecords(crit1);
}


public List<MainRecord> getMainRecords(Criterion criteria){
    if(criteria == null)
        return new ArrayList<MainReocrd>();
    return (List<MainRecord>) getHibernateTemplate().findByCriteria(DetachedCriteria.forClass(MainRecord.class).add(criteria));
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 8

尝试改变一切intIntegerdoubleDouble你的映射文件MainRecordMainRecordKey.

更新 试试这个:

Restrictions.eq("lqk.field3", e);
Run Code Online (Sandbox Code Playgroud)