作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Querydsl 4.1.0 从数据库生成 Qtable,并且自己创建 Qbean 以将结果转换为我的 Java 对象。我面临的问题是,我的 A 类有一个 B 类属性,如果我使用“A left join B”,那么如果数据库中不存在 A 的 id 的 B(这将导致这些列的值为空值) B 表在那一行),我的 A 对象在转换后将有一个 B 对象,并且所有属性均为 null。有没有办法避免实例化这个不需要的 B 对象?
我可以看到这里的问题是 QBean 的 newInstance()
方法总是创建一个 B 实例并返回它,无论所有字段的值是否为 null,在我看来这不太正确.
我的类(class):
protected final QBean<Contact> contactQBean =
Projection.fields(Contact.class,
qContact.id, qContact.firstName, qContact.lastName,
qContact.middleName, addressQBean.as("primaryAddress"));
public class Contact {
private Integer id;
private String firstName;
private String middleName;
private String lastName;
private Address primaryAddress;
我的查询:
Map<Integer, Contact> resultMap = queryFactory.from(qContact)
.leftJoin(qContact.contactAddressFK, qAddress)
.transform(groupBy(qContact.id).as(contactQBean));
最佳答案
你的问题太困难太复杂了。我不知道答案。但也许您可以尝试转到 IDE 并从堆栈中复制一些其他代码。希望对您有帮助
关于java - 通过左连接表/Querydsl 上的 QBean 映射具有 null 属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56862643/
我正在使用 Querydsl 4.1.0 从数据库生成 Qtable,并且自己创建 Qbean 以将结果转换为我的 Java 对象。我面临的问题是,我的 A 类有一个 B 类属性,如果我使用“A le
我是一名优秀的程序员,十分优秀!