我是以下方式的实现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;
...
}