The class generated by Java – querydsl cannot access the second level element for query

I use querydsl with spring data JPA in my java project, and use the file generated by querydsl Maven plug-in to use the querydsl model class generated by it This is useful when I use it for a level of nested objects, but if I try to access a second level access object, it will give a NullPointerException to keep the second level model object uninitialized

I'll thank you for some help

I'm on the third line qmachine Received a NullPointerException when vendor is null

QTransaction qtransaction = QTransaction.transaction;
QMachine qmachine = qtransaction.machine;
BooleanExpression vendorexp = qmachine.vendor.vendor.eq(machineType);

My mapping course is as follows: Trading

@Entity
@Table(name = "dsdsd")
public class Transaction extends AbstractPersistable<Long> {

    private static final long serialVersionUID = 1L;

    @ManyToOne
    @JoinColumn(name = "machine_id")
    private Machine machine;

}

The machine types are:

@Entity
@Table(name="machine")
public class Machine extends AbstractPersistable<Long> {

    private static final long serialVersionUID = 1L;

    @ManyToOne
    @JoinColumn(name="vendor_id")
    private Vendor vendor;
}

And vendor classes are

@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;

}

I have deliberately mentioned smokers and drug addicts

Solution

By default, only the first level is initialized For initialization options, see the section of this document: http://www.querydsl.com/static/querydsl/3.6.0/reference/html/ch03s03.html#d0e2192

Due to the possibility of infinite loop, the final field cannot be fully initialized, but querydsl also provides the option of property accessor method

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>