喜欢写 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.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.