我在我的 Java 项目中将 QueryDSL 与 Spring Data JPA 一起使用,并使用 QueryDSL maven 插件生成了文件以使用它生成的 QueryDSL 模型类。当我将它用于一级嵌套对象时,这很有效,但是如果我尝试访问二级访问对象,它会给出一个 NullPointerException 保存二级模型对象未初始化。
将不胜感激一些帮助。
我在第 3 行收到 NullPointerException qmachine.vendor 为空。
QTransaction qtransaction = QTransaction.transaction;
QMachine qmachine = qtransaction.machine;
BooleanExpression vendorexp = qmachine.vendor.vendor.eq(machineType);
我的映射类如下:事务
@Entity
@Table(name = "dsdsd")
public class Transaction extends AbstractPersistable<Long> {
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "machine_id")
private Machine machine;
}
机器类是:
@Entity
@Table(name="machine")
public class Machine extends AbstractPersistable<Long> {
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name="vendor_id")
private Vendor vendor;
}
供应商类是
@Entity
@Table(name="vendors")
public class Vendor extends AbstractPersistable<Long> {
private static final long serialVersionUID = 1L;
@Column(name="vendor")
@Enumerated(EnumType.STRING)
private VendorType vendor;
}
我故意省略了 getter 和 setter。