gpt4 book ai didi

java - hibernate + Derby : Comparisons between 'BOOLEAN' and 'INTEGER' are not supported

转载 作者:搜寻专家 更新时间:2023-11-01 01:36:55 25 4
gpt4 key购买 nike

我在查询 Derby 数据库时遇到问题。我正在将 Hibernate 与 JPA 一起使用。问题(可能)与 boolean 列有关。每个查询都以错误结尾:

org.hibernate.exception.SQLGrammarException:不支持“BOOLEAN”和“INTEGER”之间的比较。类型必须是可比较的。字符串类型还必须具有匹配的排序规则。如果排序规则不匹配,一个可能的解决方案是转换操作数以强制它们使用默认排序规则(例如 SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')

您可以在下面找到示例代码和配置。示例经过简化以便于阅读。这是我的 JPA 实体:

@Entity
public abstract class Task implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
protected long id;

@Column
protected boolean deleted;

public long getId() {
return id;
}

public boolean isDeleted() {
return deleted;
}

public void setId(long id) {
this.id = id;
}

public void setDeleted(boolean deleted) {
this.deleted = deleted;
}

@Override
public int hashCode() {
return id;
}

@Override
public boolean equals(Object object) {
if (object == null) {
return false;
}

if (!this.getClass().equals(object.getClass())) {
return false;
}

EntityObject other = (EntityObject) object;

if (this.id != other.id) {
return false;
}

return true;
}

@Override
public String toString() {
return "EntityObject[ id=" + id + " ]";
}
}

我的 JPA 查询:

SELECT t FROM Task t WHERE deleted = false

我的 JPA 配置:

<persistence-unit name="PU1" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/myapp</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
</properties>
</persistence-unit>

怎么了?如何解决?感谢您的任何建议。

最佳答案

Boolean 数据类型已添加到 Derby 10.7 中,您似乎使用的是 10.7 或更新版本,因此您应该使用 org.hibernate.dialect.DerbyTenSevenDialect添加 boolean 支持的方言。

关于java - hibernate + Derby : Comparisons between 'BOOLEAN' and 'INTEGER' are not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10113122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com