我有2个实体,即产品和交易,这2个实体通过多对多关系链接。我的交易实体中有以下内容。
@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name="Transaction_Product")
当我运行我的项目时,我的数据库中将创建3个表表,它们分别是Transaction,Product和Transaction_Product。我运行项目时会自动生成Transaction_Product。
我可以通过以下查询从我的交易表中获取项目。
Query q = em.createQuery("SELECT t FROM Transaction t WHERE t.fulfillStatus = 0");
我的问题是,如何从Transaction_Product表中获取项目?
我尝试了类似下面的查询,但没有用。
Query q = em.createQuery("SELECT bt FROM Transaction_Product bt WHERE bt.ProductID = 1);
请帮忙吗? :)
答案 0 :(得分:1)
检查是否存在使用指定产品的交易:
Query q = em.createQuery("SELECT t FROM Transaction t join t.products p WHERE p.id = :id");
假设Transaction
类有字段:
@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name="Transaction_Product")
private Set<Product> products;