我是一名hibernate初学者,在尝试连接2个休眠表时出现问题。我想要做的是获得某个商店取决于商店ID的产品列表,但是我得到的是每个商店下列出的数据库中所有可用产品的列表。加入休眠状态的外键
下面是Product.java
代码:
@Entity
@Table (name = "products")
public class Product implements Serializable{
/**
*
*/
private static final long serialVersionUID = -1001086120280322279L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name = "product_id")
private int product_id;
@Column(name = "product_name", unique=true)
private String product_name;
@JoinColumn(name = "store", referencedColumnName="store_id")
@ManyToOne(cascade=CascadeType.ALL)
private Store store;
等。
,这里是为Store.java
代码:
@Entity
@Table(name = "stores")
public class Store implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4497252090404342019L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name = "store_id")
private int store_id;
@Column(name = "store_name", unique=true)
private String store_name;
@JoinColumn(name="store", referencedColumnName= "store_id")
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private List<Product> productList;
等。
下面是输出:(产品A应在Butik A下,产品B在Butik下B)
Butik: Butik A
Produkt: Banana A
Produkt: Morot A
Produkt: Banana B
Produkt: Apple B
Butik: Butik B
Produkt: Banana A
Produkt: Morot A
Produkt: Banana B
Produkt: Spple B
我有2个附加的类,和的ProductDao该StoreDAO取查询的护理,该代码是在除了表名/类名这两个类相似。
public class ProductDAO {
public static List<Product> getStoreProductsList() {
Session hibernateSession = HibernateUtil.getSession();
hibernateSession.beginTransaction();
Query query = hibernateSession.createQuery("from Product");
hibernateSession.getTransaction().commit();
List<Product> storeProducts = query.list();
return storeProducts;
}
}
有没有什么办法可以用hibernate解决这个问题?
感谢
你如何检索产品列表?你用什么?加载?得到? Hibernate标准? HQL? SQL? – pakore 2010-10-06 09:21:01
我有两个额外的类,ProductDAO和StoreDAO负责查询,代码在两个类中都是类似的,除了表名。公共类ProductDao这个{ \t公共静态列表 getStoreProductsList(){ \t \t \t 会话\t = hibernateSession HibernateUtil.getSession(); \t \t hibernateSession.beginTransaction(); \t \t \t \t Query query = hibernateSession.createQuery(“from se.kyh.stores.entities.Product”); \t \t \t \t hibernateSession.getTransaction()。commit(); \t \t \t \t List storeProducts = query.list(); \t \t return storeProducts; \t \t } –
pitic
2010-10-06 09:26:08
您应该将此评论添加到原始问题中。试着编辑问题。 – 2010-10-06 09:41:06