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