HQL:在命名查询中使用布尔值

Jem*_*mru 17 hibernate boolean hql named

你能帮我么?查询布尔值"r.isDefault = true"时出错.

在我的HQL命名查询中:

<named-query name="RptQuery.queryDefaultByCode">
    <query>
        SELECT r FROM RptQuery r WHERE r.code = ?1 AND r.isDefault = true
    </query>
</named-query>
Run Code Online (Sandbox Code Playgroud)

我得到错误:引起:org.hibernate.HibernateException:命名查询中的错误:RptQuery.queryDefaultByCode

在我的persistence.xml中:

<property name="hibernate.query.substitutions" value="true='Y', false='N', yes='Y', no='N'"/>
Run Code Online (Sandbox Code Playgroud)

在我的pojo中:

private boolean isDefault;

@Column(name = "CPMN_IS_DEFLT", length = 1)
@Type(type = "yes_no")
public boolean isDefault() {
    return this.isDefault;
}

public void setDefault(boolean isDefault) {
    this.isDefault = isDefault;
}
Run Code Online (Sandbox Code Playgroud)

先感谢您!

答:刚发现一个小错误:

r.isDefault = true
Run Code Online (Sandbox Code Playgroud)

应该

r.default = true
Run Code Online (Sandbox Code Playgroud)

谢谢.

gia*_*api 41

试试这个 : where r.isDefault is true