在某些实体之间具有 am:n 真实世界的关系,例如用户 <---> 组 现在我想对这种关系进行建模并基于它存储附加信息,例如字段“质量”。
听说要新建一个联接表 user_group 如下:
id | user_ref | group_ref | quality
----------------------------------
1 1 1 0.5
2 1 2 1.3
... ... ... ...
对应的实体有两个相关的实体(私有成员)用户和组,使用@ManyToOne注释进行注释。另一方面,我的用户和我的组都有一组相关的 user_group-entities,它们都是私有成员,并使用@OneToMany -annotation 声明。
我有三个问题:
- 这是对 JPA 2.0 中附加字段问题进行建模的正确方法吗?
- 我不允许同时使用 user_group 中的用户和组作为主键,因为它们不是有效的主键类型。是否真的有必要声明一个新的主节点。
- 这是这些连接表/实体的常见工作流程吗?
...
EntityManager em = ...
...
em.getTransaction().begin();
User u = new User("Pete");
Group g = new Group("Anonymous workaholics")
UserGroup ug = new UserGroup();
ug.addUser(u);
ug.addGroup(g);
em.persist(u); em.persist(g); em.persist(ug);
em.getTransaction().commit();
em.close()
非常感谢!