我通过以下方式实现Item
和User
关系。现在我需要为同一对项目和用户提供不同的关系。所以我正在考虑另一个班ItemUser2
。可能我需要ItemUserBase
并从中扩展ItemUser1
和ItemUser2
等等。如果ItemUserBase
扩展Model
,那么将在数据库中创建一些提取表,但ItemUserBase
应该是抽象的。 您的想法是什么?
是否会以某种方式影响加入注释以确保正确性?
Item.java
@Entity
public class Item extends Model {
@Id
public Long id;
...
@OneToMany(cascade = CascadeType.ALL, mappedBy="user")
public List<UserItem> userItems = new ArrayList<UserItem>();
}
User.java
@Entity
public class User extends Model {
@Id
public Long id;
...
@OneToMany(cascade = CascadeType.ALL, mappedBy="item")
public List<UserItem> userItems = new ArrayList<UserItem>();
}
UserItem.java
@Entity
public class UserItem extends Model {
@Id
public Long id;
@ManyToOne
@JoinColumn(name = "user")
public User user;
@ManyToOne
@JoinColumn(name = "item")
public Item item;
public Date date;
...
}
答案 0 :(得分:0)
它实际上是这样的。我将为以后的读者保留代码。