Grails中字符串以外的其他类型的映射

Grails中字符串以外的其他类型的映射,grails,gorm,Grails,Gorm,我创建了一个简单的域类,其中包含map class Foo { Map bar } 条形图将创建为类似以下内容: create table foo_bar (bar bigint, bar_idx varchar(255), bar_elt varchar(255) not null); …如下列文件所述: 静态hasMany属性定义了 中元素的类型 地图。地图的键必须是 字符串 现在我的问题是-是否可以创建字符串以外的值映射?我可以使用纯Hibernate(元素映射)来实现这一

我创建了一个简单的域类,其中包含map

class Foo {
   Map bar
}
条形图将创建为类似以下内容:

create table foo_bar (bar bigint, bar_idx varchar(255),
   bar_elt varchar(255) not null);
…如下列文件所述:

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


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

我想你的意思是,如果可以创建除字符串以外的键映射的话

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

假设您希望在数据库中持久化一个映射,并假设您有两个实例:objectA和objectB您希望在映射中持久化,其名称为“关系”:

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

这应该行得通。使用hashCode()、getId()或其他任何东西更改toString(),这些东西为您提供了唯一的字符串来标识该对象,并且仅标识该对象,您就得到了它