Java プロジェクトで Spring Data JPA で QueryDSL を使用しており、QueryDSL maven プラグインを使用してファイルを生成し、それによって生成された QueryDSL モデル クラスを使用しています。これは、1 レベルのネストされたオブジェクトに使用するとうまく機能しますが、第 2 レベルのアクセス オブジェクトにアクセスしようとすると、第 2 レベルのモデル オブジェクトが初期化されていないことを保存する NullPointerException が発生します。
助けていただければ幸いです。
3 行目の qmachine.vendor is null で NullPointerException が発生しています。
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;
}
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;
}
意図的にゲッターとセッターを省略しました。