【发布时间】:2013-10-23 15:08:18
【问题描述】:
我有两个实体,即产品和交易,这两个实体通过多对多关系链接。我的交易实体中有以下内容。
@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);
有什么帮助吗? :)
【问题讨论】:
-
你不需要从那个表中获取数据,你想达到什么目的?
-
您好。该 Transaction_Product 包含作为主键的事务 ID 和产品 ID。对于我的项目中的一个需求,我需要确保只有在没有为该产品进行交易的情况下才能删除该产品。因此,这解释了我要检查 Transaction_Product 的原因。如果 Transaction_Product 表中存在基于某个产品 ID 的行,则用户无法删除该产品。
标签: ejb netbeans-7 jpql