0
@Entity
public class Store {}
@Entity
@Table(name = "storeitem")
public class StoreItem {
@Id @Column
private Integer storeId;
@Id
@ManyToOne @JoinColumn (name="productId", referencedColumnName="id")
private Product product;
@Column private Double cost;
}
mysql> desc storeitem;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| StoreId | int(10) unsigned | NO | PRI | 0 | |
| ProductId | bigint(20) unsigned | NO | PRI | 0 | |
| cost | double unsigned | NO | | 0 | |
@Entity
@Table(name = "product")
public class Product {
@Id @GeneratedValue @Column(name = "Id")
private Long id;
@Column(name = "Name")
private String name;
}
mysql> desc product;
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| Id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| Name | varchar(70) | NO | | | |
Criteria cr=sess.createCriteria(StoreItem.class);
cr.add(Restrictions.eq("product.name","butter"));
cr.list();
當我試圖通過孩子的屬性過濾我得到這個下面例外休眠單向多對一查詢由孩子的財產
org.hibernate.QueryException: could not resolve property: product.name of:StoreItem
我嘗試「CR .add(Restrictions.eq(「product」,「product」)).add(Restrictions.eq(「name」,「butter」));'我得到了這個錯誤'org.hibernate.QueryException:無法解析屬性:名稱:StoreItem' – yodhevauhe 2011-05-27 11:39:48
抱歉代碼錯誤請參閱編輯代碼。如果失敗嘗試'產品,Product.class'我不知道基於更多的註釋這就是爲什麼。 – 2011-05-27 11:45:40