NutzCN Logo
问答 Sqls.callback.entities多个返回值问题
发布于 2842天前 作者 SayingCode 2461 次浏览 复制 上一个帖子 下一个帖子
标签:

发现系统自带的Sqls.callback很好用,尤其是在链表查询的时候,但是当连表查询的时候存在重复字段如何做解析呢,
比如表1 (TableA)包含字段 "name" 表2(TableB)也有个 "name"字段,这个时候如何做解析呢?

我的代码
Sql sql = Sqls.create(_sql_query.toString());
Entity entity = dao().getEntity(ApiUserDetailResult.class);
sql.setEntity(entity);
sql.setCallback(Sqls.callback.entities());
dao().execute(sql);
sql.getObject(ApiUserDetailResult.class);

public class ApiUserDetailResult {
private String name;
}

发现连表left join的时候返回表TableA的字段,表2的name字段不知道如何来获取?或者可以对返回结果写注解?

2 回复

需要用别名了, 每个表分配一个别名前缀, 然后用records回调取出, toEntity的时候可以传前缀

刚实验了另外一个方法,或许能够更优雅的解决这个问题

使用自定义的sql语句在select的后面查询指定字段
比如存在TableA 字段 name ;TableB 字段 name
我的select语句 select TableA.name as a_name,TableB.name as b_name ...
这样我的解析对象为
class xxx{
String a_name;
String b_name;
}
如果以上成立,是不是就优雅的解决了这个问题,怎么看着和mybatis有点神似

添加回复
请先登陆
回到顶部