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