gpt4 book ai didi

java - Hibernate 无法将其中一个字段的实体保存为枚举

转载 作者:行者123 更新时间:2023-11-30 09:30:39 26 4
gpt4 key购买 nike

这里是个异常(exception)—— pastebin

Caused by: java.sql.SQLException: Unknown Parameter: 13
at com.google.cloud.sql.jdbc.ParameterMetadata.getParameterType(ParameterMetadata.java:45)
at org.hibernate.type.EnumType.nullSafeSet(EnumType.java:121)
at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:155)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2705)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2682)
at org.hibernate.persister.entity.AbstractEntityPersister$4.bindValues(AbstractEntityPersister.java:2863)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
... 111 more

枚举在我的 hibernate 映射中 -

<property name="userStatus" column="user_status" insert="true" update="true" index="true">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">com.tutorial.enums.UserStatus</param>
<param name="type">12</param>
</type>
</property>
<property name="userType" column="user_type" insert="true" update="true" index="true">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">com.tutorial.enums.UserType</param>
<param name="type">12</param>
</type>
</property>

我的实体将 UserType 和 UserStatus 作为枚举。 Hibernate 无法正确转换枚举。我是否应该切换回 hibernate 3,因为在另一个项目(使用 hibernate 3)中我有自己的自定义类型并且它工作得很好。我现在正在使用 hibernate 4.1.7。

最佳答案

添加

<param name="useNamed"></param>

它应该可以正常工作。

<property name="userType" column="user_type" insert="true" update="true" index="true">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">com.tutorial.enums.UserType</param>
<param name="type">12</param>
<param name="useNamed"></param>
</type>
</property>

编辑:

<param name="useNamed"></param>

必须在那里,但如果你留空,那么 Enums 将被序列化为 Ordinals,如果你在数据库上进行手动操作,这不是很有帮助,所以如果你想获取名称,那么它必须是

 <param name="useNamed">true</param>

关于java - Hibernate 无法将其中一个字段的实体保存为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13191508/

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