2011-09-26 11 views
6

Come ti mappare la seguente classe in ibernazione:Come mappare una stringa [] in ibernazione

private class Book { 
    private int id; 
    private String title; 
    private String[] chapterTitles; 

    //Constructor, Getters and Setters 
} 

ho mappato Collezioni e array primitivi in ​​Hibernate, ma come faccio a farlo con un String [ ]? I miei strumenti di ibernazione si interrompono con un 'NullPointerException', quindi non riesco a generare i mapping. E ho cercato su Google ma non sono riuscito a trovarne.

+0

perché non utilizzare una lista? – Bozho

+0

Questo è un servizio Web per un client JME che utilizza Simple XML per serializzare gli oggetti in XML. Il parser XML sul dispositivo scritto da un altro sviluppatore utilizza un parser generico per analizzare i contenuti. La modifica del membro come raccolta genererebbe un diverso tipo di elemento XML che potrebbe interrompere il parser dell'app JME. –

+0

lo farebbe? Normalmente un array e una lista dovrebbero essere intercambiabili quando si tratta della serializzazione xml/json – Bozho

risposta

7

Non ho idea di come farlo con Annotations e personalmente, non penso sia una buona idea e dovresti usare List<String> tuttavia puoi farlo usando il mapping xml.

Si dovrebbe usare <array>

<array name="chapterTytles" table="Titles"> 
    <key column="title_ID" /> 
    <index column="tytle_index" /> 
    <element column="tytle_name" type="string" /> 
</array> 
+1

Ciao @danny, ho già provato questo e sto ottenendo la seguente eccezione: org.hibernate.MappingException: Impossibile determinare il tipo per: String, alla tabella: Titoli, per colonne: [org.hibernate.mapping.Column (title_ID)] –

+0

Si prega di provare stringa con la minuscola, ma l'uso migliore Elenco :) –

+0

Quando uso 'stringa' Sto diventando java.lang.ClassCastException: org.hibernate .type.StringType non può essere lanciato su org.hibernate.type.PrimitiveType. Ok, penso che dovrei usare List . Hai qualche indicazione per l'elenco ? –

5

È possibile farlo da creating a custom value type, anche se personalmente preferirei modificare il design e utilizzare invece un elenco.

+0

Ciao @Sean, come faccio se utilizzo una lista ? –

+0

@RagunathJawahar mi sembra che tu abbia già mappato le raccolte? Il tuo testo di domanda dice così. –

+0

Sì, l'ho fatto per l'elenco , ma non l'ho ancora provato per String. Nessun problema, ho già trovato un lavoro in giro. Grazie comunque. –

Problemi correlati