我创建了带有 map 的简单域类。
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所述:
The static hasMany property defines the type of the elements within the Map. The keys for the map MUST be strings.
现在我的问题是-是否可以创建除字符串以外的值映射?我可以使用纯Hibernate(元素映射)实现这一点-有什么想法可以将其移植到Grails?
最佳答案
我认为您的意思是是否可以创建除Strings之外的KEYS映射。
这是不可能的:所有键都必须是字符串,而值可以是您想要的任何类型。
一种实现所需目标的方法是,对要用作 map 键的类的类型使用一些唯一的标识符。
假设您希望Map保留在数据库中,并说您有两个实例:要保留在 map 中的objectA和objectB,名称为“relationship”:
关系。“objectA.toString()” = objectB
那应该工作。用hashCode(),getId()或其他任何可以为您提供唯一的String来标识该对象以及仅此对象的东西,将toString()更改为您即可。
关于grails - 除Grails中的字符串以外的其他类型的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284049/