喜欢写 sql ,所以不想用 hibernate 类似的完全托管访问数据库的框架,一般用 mybatis 之类的将查询结果转换成 entity 。
这种情况下如果类之间有关联关系,在设计 api 的时候大家一般如何做呢。
比如 User 关联 Department ,在 User 里面是用 departmentId 还是 Department 实体,
如果用 id 属性,在一些情况下需要 department 表的信息,就需要二次查询。
用实体 Department 的情况下(查询 User 时增加 left join department ),是很方便访问关联表的数据,但是会遇到下面两个问题:
- 如果
Department又关联了Organization属性呢?Organization又关联了其他的 Entity 呢, 这样一个查询User表的数据的 sql 会关联到很多其他的表,而且很多的 sql 语句都是重复使用的,比如查询Department和Organization的列字段和直接查询Department实体时的字段是一样的,如果 department 表新增加了字段,这几处的 sql 都要改。
2.