Domanda

Sto cercando di conservare gli importi di fisica JScience nel mio progetto Grails. Sto usando ibernati e le impostazioni predefinite, ma preferirei qualcosa con l'applicabilità generale. Sono specificamente preoccupato per la massa e se potessi fare la mia strada farei solo una linea nell'oggetto del dominio come così:

MyDomainClass {
  Amount<Mass> weight
}

Ma questo dà questo errore:

Causato da: org.hibernate.exception.dataexception: impossibile inserire: [Progetto.myDomainclass] a $ proxy10.SaveOrupdate (fonte sconosciuta) ... 27 Altri causati da: com.mysql.jdbc.mysqldatatruncation: dati troncati: dati anche dati Lungo per la colonna 'peso' alla riga 1 su com.mysql.jdbc.mysqlio.checkerrorpacket (mysqlio.java:3601) all'indirizzo com.mysql.jdbc.mysqlio.checkerrorpacket (mysqlio.java:3535) a com.mysql.jdbc. MysqlIO.sendCommand(MysqlIO.java:1989) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) at com.mysql.jdbc .PreParedStatement.executeInternal (preparato.java:2119) su com.mysql.jdbc.preparatedStatement.executeupdate (preparato. jdbc.preparatedStatement.executeUpdate (preparato.java:2318) su org.apache.commons.dbcp.DelegatingPrepatedStatement.ExecuteUpdate (DelegingPreparedStatement.java:105) ... 28 Altro

Posso correggere quell'errore cambiandolo

def weight

C'è qualcosa di sbagliato in questo o in un modo migliore? Esiste una soluzione di database con vantaggi per trattare unità miste? Google questo è così frustrante perché tutto riguarda i test unitari.

È stato utile?

Soluzione

Hai nascosto solo i messaggi di errore con def weight - Ciò ha reso il campo non persistente. Dal momento che non è digitato, Grails e Hibernate non sanno come persistere e ignorarlo.

La mia ipotesi è che stesse immagazzinando l'oggetto come una chiazza ed era troppo grande per le dimensioni predefinite, ma probabilmente non è quello che vuoi. Guarda a http://grails.org/doc/latest/guide/gorm.html#customhibernateTypes Per come mapparli nella tua classe di dominio.

Il collegamento nel documento di Grails ai documenti di ibernazione è rotto: l'URL corretto è http://docs.jboss.org/hibernate/stable/core/manual/en-us/html/mapping.html#mapping-types-custom

JScience potrebbe già avere tipi di letargo personalizzati (nella distribuzione o da una terza parte): dovresti controllare i loro documenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top