2013-07-25 133 views
2

我正在尝试使用Hibernate连接到数据库。org.hibernate.QueryException - 无法解析属性

这个电流表具有以下布局:

(field1, field2, field3, optional1, optioanl2...) 

其中字段1,字段2,字段3都是外键,并一起组成一个复合键。

我有以下类别:

@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 
.... 
} 

这伴随它:

@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; 
} 

我收到以下错误:

org.hibernate.QueryException - could not resolve property: field3 of: path.MainRecord at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:67)

这里是我的博/ 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)); 
} 

回答

8

试图改变所有intIntegerdoubleDouble在映射文件MainRecordMainRecordKey

UPDATE 试试这个:

Restrictions.eq("lqk.field3", e); 
+0

仍然导致了同样的错误 – mangusbrother

+0

@mangusbrother见我的更新。 – Alex

+0

它的工作。谢谢 – mangusbrother

相关问题