Grails: как хранить jScience Amounts - PullRequest
0 голосов
/ 15 января 2012

Я пытаюсь сохранить физические цифры в своем проекте Grails.Я использую спящий режим и настройки по умолчанию, но я бы предпочел что-то с общей применимостью.Меня особенно беспокоит Масса, и если бы я мог по-своему, я бы просто сделал строку в доменном объекте следующим образом:

MyDomainClass {
  Amount<Mass> weight
}

Но это выдает эту ошибку:

Причина:org.hibernate.exception.DataException: не удалось вставить: [project.MyDomainClass] в $ Proxy10.saveOrUpdate (неизвестный источник) ... еще 27 причин: com.mysql.jdbc.MysqlDataTruncation: усечение данных: данные слишком длинные для столбца'weight' в строке 1 в com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3601) в com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3535) в com.mysql.jdIOc.mom(MysqlIO.java:1989) на com.mysql.jdbc.MysqlIO.sqlQueryDirect (MysqlIO.java:2150) на com.mysql.jdbc.ConnectionImpl.execSQL (ConnectionImpl.java:2626) на com.mysql.jdbmentPrepa.executeInternal (PreparedStatement.java:2119) по адресу com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.java:2415) по адресу com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.jpa.m3) .2:.redStatement.executeUpdate (PreparedStatement.java:2318) в org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate (DelegatingPreparedStatement.java:105) ... еще 28

Я могу исправить эту ошибку, изменив ее на1008 *

def weight

Что-то не так или лучше?Есть ли какое-либо решение для базы данных с преимуществами для работы со смешанными единицами?Гуглить это так расстраивает, потому что все касается юнит-тестирования.

1 Ответ

1 голос
/ 15 января 2012

Вы только скрыли сообщения об ошибках с def weight - это сделало поле непостоянным.Поскольку он не напечатан, Grails и Hibernate не знают, как его сохранить и игнорировать.

Я предполагаю, что он хранил объект в виде большого двоичного объекта, и он был слишком большим для размера по умолчанию, но этовероятно не то, что вы хотите.Посмотрите на 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 (либо в дистрибутиве, либо от сторонних производителей) - вам следует проверить их документы.

...