2016-11-23 2 views
0
Grails

In meiner postgreSQL DB Ich habe ein Feld mit dem Datentyp int[] versuchen, diese Domain-Klasse in eine Grails Spalte MAPP Integer[] die Anwendung nicht gestartet werden:Mapping postgreSQL inetger [] Typ Daten

org.hibernate.type.SerializationException: could not deserialize 

Ist Gibt es einen anderen Weg, dies zu erreichen?

Ich habe auch versucht dies: //insurance column: 'rs_insurance', sqlType: "integer[]"

Antwort

0

byte[] Typ ist out-of-Box arbeiten und mit einem entsprechenden BLOB Typ zugeordnet ist.

Wenn es mit Ihnen nicht in Ordnung ist, können Sie Ihre Array beim Speichern serialisiert und deserialisiert es beim Laden:

void setValue(v) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream() 
    baos.withObjectOutputStream{ it.writeObject v } 
    blob = baos.toByteArray() 
} 

def getValue() { 
    def out = null 
    if(blob) new ByteArrayInputStream(blob).withObjectInputStream{ out = it.readObject() } 
    out 
} 
+0

Werte von DB (57,58,59,60) wurden in diesen Werten transformiert [123, 53, 55, 44, 53, 56, 44, 53, 57, 44, 54, 48, 125] – Jacob

+0

was hast du gemacht? Welcher SQL-Typ ist deine Spalte? – injecteer

+0

Spalte ist Typ Integer [] und Wert ist {57,58,59,60} – Jacob