我是JPA的新手,非常抱歉,如果这是一个非常基本的问题。JPA ManyToMany约束
我有一个应用程序,用户可以对产品进行投票(范围为0到10),但只能投一次。我很困惑JPA建立的许多多元关系如何允许这样做。
我有一个用户对象和一个投票对象和一个产品对象。
用户可以对产品进行投票,但只能投一次。一个产品可以有许多用户的投票,但每个用户只有一个投票。我如何从JPA注释中设计这个?我清楚地从数据库设计中明白这一点,而不是来自JPA。
我是JPA的新手,非常抱歉,如果这是一个非常基本的问题。JPA ManyToMany约束
我有一个应用程序,用户可以对产品进行投票(范围为0到10),但只能投一次。我很困惑JPA建立的许多多元关系如何允许这样做。
我有一个用户对象和一个投票对象和一个产品对象。
用户可以对产品进行投票,但只能投一次。一个产品可以有许多用户的投票,但每个用户只有一个投票。我如何从JPA注释中设计这个?我清楚地从数据库设计中明白这一点,而不是来自JPA。
由于您使用的是JPA,它是一个对象关系映射器,因此可以像JPA和数据库不参与那样进行设计。
我的意思是建立你的对象模型(Java类)的方式,将有意义的对象和关系,你试图捕捉 - 然后担心正确配置这些对象的JPA。
我最后一次使用JPA时,2.0版本正在推出,所以我不记得规范是如何支持使用java.util.map实现的字段,但Map将是一个支持的好方法。
具体来说,在您的Product对象中,可以有一个Map类型的字段。
Map<User,Vote> votesOnThisProduct;
但说实话,无论感觉最合理的,当你只从Java类,忽略JPA和数据库心态的角度想想,是要走的路。
其他选项。将定义其它类,如
public class ProductVoteRecord
{
User user;
Vote vote;
Product product;
}
,然后使用户和产品(以及可能投票)经由JPA注释的化合物主键。
但即使是这样的一类,也会显示被关系设计中毒的迹象,因为它本质上是一个细分表。