我是以下方式的实现Item和User关系。现在我需要对同一对项目和用户有不同的关系。所以我正在考虑另一堂课ItemUser2。可能我需要ItemUserBase并从中扩展ItemUser1等等ItemUser2。如果ItemUserBase扩展Model,则将在数据库中创建一些提取表,但ItemUserBase应该是抽象的。你怎么看?
它会以某种方式影响加入注释以确保正确性吗?
项目.java
@Entity
public class Item extends Model {
@Id
public Long id;
...
@OneToMany(cascade = CascadeType.ALL, mappedBy="user")
public List<UserItem> userItems = new ArrayList<UserItem>();
}
用户.java
@Entity
public class User extends Model {
@Id
public Long id;
...
@OneToMany(cascade = CascadeType.ALL, mappedBy="item")
public List<UserItem> userItems = new ArrayList<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;
...
}