Java 关于数据库 Entity 如何设计
疑问?
Employee 关联 Department ,在Employee 里面是用 departmentId关联Department表,在一些情况下需要 department 表的信息,就需要二次查询。
用实体 Department 的情况下(查询 User 时增加 left join department ),是很方便访问关联表的数据,但是会遇到下面问题:
如果 Department 又关联了 Organization 属性呢?Organization 又关联了其他的 Entity 呢, 这样一个查询 Employee 表的数据的 sql 会关联到很多其他的表,而且很多的 sql 语句都是重复使用的,比如查询 Department 和 Organization 的列字段和直接查询 Department 实体时的字段是一样的,如果 department 表新增加了字段,这几处的 sql 都要改。
完全托管访问数据库的框架 ORM (JPA ,hibernate)
@One to Many 一对多关系
Employee 关联 Department ,建表时在 Employee 里面是用 departmentId 作为外键,User表依赖Department主表。
Entities (JPA)
@Entity
public class Department {
@Id
@Ge