Java QueryDSL将此路径作为源添加到查询异常
环境:Spring、JPA、Hibernate 我正在获取此Stacktrace(修改了类名): 我正在尝试这样做:Java QueryDSL将此路径作为源添加到查询异常,java,jpa,querydsl,Java,Jpa,Querydsl,环境:Spring、JPA、Hibernate 我正在获取此Stacktrace(修改了类名): 我正在尝试这样做: public static final Predicate getByCodeAndName( final String sCode, final String sName) { BooleanExpression expression = null; QFooPK fooPK = QFooPK.fooPK; QFoo f
public static final Predicate getByCodeAndName(
final String sCode,
final String sName) {
BooleanExpression expression = null;
QFooPK fooPK = QFooPK.fooPK;
QFoo foo = QFoo.foo;
expression = fooPK.code.eq(sCode)
.and(foo.name.eq(sName));
return expression;
}
Qfoook是定义为QFoo的PK的对象,
关系由QueryDSQL通过Maven自动定义
我试图实现如下查询:
从表1中选择*,其中XCODE='code'和XNAME='name'
TABLE1.XCODE和TABLE1.YCODE将是复合主键,TABLE1.XNAME只是一个字段
我不确定是什么导致了错误。
QFooPK.fooPK
是顶级变量,与您的实体无关。你的例子应该是这样的
public static final Predicate getByCodeAndName(
final String sCode,
final String sName) {
QFoo foo = QFooVal.foo;
return foo.id.code.eq(sCode)
.and(foo.name.eq(sName));
}
将
id
替换为您的id属性名称 我最初是以foo.id().fooPK.code(sCode)的身份进行的。难怪它不起作用。
public static final Predicate getByCodeAndName(
final String sCode,
final String sName) {
QFoo foo = QFooVal.foo;
return foo.id.code.eq(sCode)
.and(foo.name.eq(sName));
}