Hibernate在Map中映射UserType

时间:2012-01-12 22:14:26

标签: java hibernate orm map annotations

我遇到了一个问题,即无法使用Hibernate持久保存Map<UUID, Integer>。我不确定如何正确地注释这个集合,以便它可以正确地映射到我们的数据库中。我们控制架构,所以任何方式都可以。我需要以某种方式指定密钥在我的地图中的用户类型吗?我需要一个吗?我知道Type注释用于单个字段。也许不是收藏品?我打电话给session.flush()

时收到以下异常

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.UUID

@ElementCollection
@Type(type="org.hibernate.type.UUIDCharType")
private Map<UUID, Boolean> orderCount = new HashMap<UUID, Integer>();

1 个答案:

答案 0 :(得分:0)

我相信你必须写一个UserType来处理Map<UUID, Boolean> ..然后UserType应使用org.hibernate.type.UUIDCharType来映射关键列。