通用查询解决方案
数据库表之间关系:
- 一对一 (可以看做一对多的特例)
- 一对多
- 多对多
下图将涵盖了所有关系。
根据restful接口风格,我们最终会落到一个实体上,示例按照b表。其他表同理。
GET https://ip:port/xx/xx/1/0/b
查询的场景:
- 只需要b表的某些元素
- 需要b某些元素,及相关联的a表某些元素。
- 需要b某些元素,及a,c,d某些元素。
思路: 通过数据库的外键,自动生成代码。在新建实体类时,自动查询关联的实体。关联实体查询一层一层传导下去。
通过在返回对象实体上加注解,标识需要返回的字段,及需要关联查询的对象,防止洪泛式关联对象查询。
class B{ 自身属性; 关联的外键对象a; 被关联的对象c集合; 构造方法(){ 查询自身属性; 查询关联的外键对象a; 查询被关联的对象c集合; } }