gpt4 book ai didi

java - Hibernate HQL 转换 : java. lang.String 无法转换为 java.lang.Enum

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:05 24 4
gpt4 key购买 nike

我遇到了这个问题:

java.lang.String cannot be cast to java.lang.Enum

当我尝试这个HQL时:

...
query = em.createQuery("SELECT object from Entity object where object.column = ?");
query.setParameter(1, "X");
return query.getResultList();

在 DB 中,type 是一个带有检查约束的 Varchar2(x) 并且实体中的变量是使用 Enum 定义的标签@Enumerated(EnumType.STRING):

public enum ColumnEnum {
X, Y;
}

最佳答案

如果该字段定义为枚举,则必须将枚举作为参数传递:

query.setParameter(1, TypeEnum.X);

然后让 Hibernate 使用映射将参数转换为字符串(如果使用 @Enumerated(EnumType.STRING))或转换为 int(如果使用 @Enumerated(EnumType.ORDINAL ) 被使用).

关于java - Hibernate HQL 转换 : java. lang.String 无法转换为 java.lang.Enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11840831/

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