Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails:如何存储jScience数量_Grails_Gorm_Jscience - Fatal编程技术网

Grails:如何存储jScience数量

Grails:如何存储jScience数量,grails,gorm,jscience,Grails,Gorm,Jscience,我试图在我的grails项目中存储物理量。我使用的是hibernate和默认值,但我更喜欢具有通用性的东西。我特别关注质量,如果我可以按照我的方式,我会在域对象中画一条线,如下所示: MyDomainClass { Amount<Mass> weight } 这有什么问题吗,或者更好的方法?对于处理混合单元,是否有任何具有优势的数据库解决方案?谷歌搜索这一点非常令人沮丧,因为一切都与单元测试有关。您只使用def-weight隐藏了错误消息,这使得该字段不持久。由于它不是类型化的

我试图在我的grails项目中存储物理量。我使用的是hibernate和默认值,但我更喜欢具有通用性的东西。我特别关注质量,如果我可以按照我的方式,我会在域对象中画一条线,如下所示:

MyDomainClass {
  Amount<Mass> weight
}

这有什么问题吗,或者更好的方法?对于处理混合单元,是否有任何具有优势的数据库解决方案?谷歌搜索这一点非常令人沮丧,因为一切都与单元测试有关。

您只使用
def-weight
隐藏了错误消息,这使得该字段不持久。由于它不是类型化的,Grails和Hibernate不知道如何持久化它并忽略它

我的猜测是,它将对象存储为一个blob,对于默认大小来说太大了,但这可能不是您想要的。查看如何在域类中映射它们

Grails文档中到Hibernate文档的链接已断开-正确的url为


jScience可能已经有自定义的Hibernate类型(在发行版中或来自第三方)-您应该查看他们的文档。

Burt,一如既往地感谢您的帮助,但我的应用程序似乎将其作为def持久化。我可以执行save()和list(),然后查看它。使用指定的类型运行
grails schema export
,然后再运行一次,不查看差异-输出将在target/ddl.sql中。再次感谢您的提示。此外,似乎我在SQL中保存它是错误的,尽管我可以用list()保存它并将其取回。您是如何做到这一点的?您必须访问缓存数据-您是在单元/集成测试中还是在运行的web应用程序中执行此操作?如果您是基于单元测试,那么您会在内存hashmap中看到缓存的数据,该hashmap假装是一个数据库。在运行的web应用程序或Grails控制台中保存实例,清除会话(
AnyDomainClass.withSession{it.clear()}
)并重新加载它,非类型数据将不在那里。看看数据库——它也不会在那里。我接受你的答案,但对于定义hibernate类型的记录来说似乎很可怕,所以我只是手动填充它,编写我自己的getter和setter,将数量序列化,并将其转换为标准单位,作为一个大十进制进行搜索。
def weight