Hibernate映射枚举到varchar
问题描述:
假设我有这个枚举:
public enum TestEnum { EXAMPLE, FURTHER_EXAMPLE, LAST_EXAMPLE }
在 .hbm
中的此映射:
<property name="testEnum" column="TEST_COLUMN">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">p.a.c.k.TestEnum</param>
</type>
</property>
枚举以 0发送到数据库
, 1
, 2
。我想要将值存储为 EXAMPLE
, FURTHER_EXAMPLE
或 LAST_EXAMPLE
在varchar列中。
The enum is sent to the database as 0
, 1
, 2
. I'd like the values to be instead stored as EXAMPLE
, FURTHER_EXAMPLE
or LAST_EXAMPLE
in a varchar column.
如何将枚举映射到varchar列?
How can I map enum to a varchar column?
答
将其添加为EnumType的参数:
Add this as a parameter of EnumType:
<param name="type">12</param>
这是因为 12
相当于 java.sql.Types.VARCHAR