首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails:如何存储jScience数量

Grails:如何存储jScience数量
EN

Stack Overflow用户
提问于 2012-01-15 17:36:20
回答 1查看 267关注 0票数 0

我正在尝试在我的grails项目中存储jscience物理量。我使用的是hibernate和defaults,但我更喜欢通用的。我特别关注质量,如果可以的话,我只想在域对象中做一行,如下所示:

代码语言:javascript
复制
MyDomainClass {
  Amount<Mass> weight
}

但这会给出这个错误:

原因: org.hibernate.exception.DataException:无法在权重插入: project.MyDomainClass位于$Proxy10.saveOrUpdate(未知源) ... 27更多原因: com.mysql.jdbc.MysqlDataTruncation:数据截断:对于位于com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3535)的com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)的com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3601)的第1行的列'weight‘,数据太长在com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)在com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)在com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)在com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)在com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)在com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)在org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105) ...还有28个

我可以通过将其更改为

代码语言:javascript
复制
def weight

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-15 23:08:37

您只使用def weight隐藏了错误消息,这使得该字段成为非持久性的。因为它不是类型化的,所以Grails和Hibernate不知道如何持久化和忽略它。

我的猜测是它将对象存储为blob,对于默认大小来说太大了,但这可能不是您想要的。查看http://grails.org/doc/latest/guide/GORM.html#customHibernateTypes,了解如何在您的域类中映射它们。

Grails文档中指向Hibernate文档的链接断开了-正确的url是http://docs.jboss.org/hibernate/stable/core/manual/en-US/html/mapping.html#mapping-types-custom

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8868754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档