0

我在其中创建了带有地图的简单域类。

class Foo {
   Map bar
}

条形图将被创建为:

create table foo_bar (bar bigint, bar_idx varchar(255),
   bar_elt varchar(255) not null);

...如http://www.grails.org/GORM+-+Collection+Types中所述:

静态 hasMany 属性定义了 Map 中元素的类型。地图的键必须是字符串。

现在我的问题是 - 是否可以创建字符串以外的值映射?我可以使用纯 Hibernate(元素映射)来实现这一点 - 任何想法如何将它移植到 Grails?

4

1 回答 1

1

我认为您的意思是是否可以创建字符串以外的键映射。

这是不可能的:所有键都必须是字符串,而值可以是您想要的任何类型。实现您想要的一种方法是为您想要的类类型使用一些唯一标识符作为地图的键。

假设您希望将 Map 持久保存在数据库中,并说您有两个实例:objectA 和 objectB 您要持久保存在地图中,名称为“relationship”:

关系。“objectA.toString()”=objectB

那应该行得通。使用 hashCode()、getId() 或任何可以为您提供唯一字符串的东西更改 toString() 来标识该对象,并且只有那个对象,然后您就知道了。

于 2011-05-03T09:51:31.223 回答