2011-09-26 6 views
6

¿Cómo le mapear la clase siguiente en hibernación:Cómo asignar un String [] en hibernación

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

    //Constructor, Getters and Setters 
} 

he mapeado Colecciones y matrices primitivas en Hibernate, pero ¿cómo hacerlo con un String [ ]? Mis herramientas de hibernación se detienen con una 'NullPointerException', por lo que no puedo generar las asignaciones. Y busqué en Google pero no pude encontrar ninguno.

+0

Por qué no utilizar una lista? – Bozho

+0

Este es un servicio web para un cliente JME que usa Simple XML para serializar objetos en XML. El analizador XML en el dispositivo escrito por otro desarrollador usa un analizador genérico para analizar el contenido. Cambiar el miembro como una colección generaría un tipo de elemento XML diferente que rompería el analizador de la aplicación JME. –

+0

¿o sí? Normalmente, una matriz y una lista deben ser intercambiables cuando se trata de la serialización xml/json – Bozho

Respuesta

7

No tengo ni idea de cómo hacerlo con las anotaciones y, personalmente, no creo que sea una buena idea y debe usar List<String>, sin embargo, puede hacerlo mediante el mapeo xml.

Debe utilizar <array>

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

Hola @danny, ya lo he intentado y obtengo la siguiente excepción: org.hibernate.MappingException: No se pudo determinar el tipo para: Cadena, en la tabla: Títulos, para columnas: [org.hibernate.mapping.Column (title_ID)] –

+0

Por favor intente con la cadena con la minúscula, pero el mejor uso List :) –

+0

Cuando uso 'cadena' obtengo java.lang.ClassCastException: org.hibernate .type.StringType no se puede convertir en org.hibernate.type.PrimitiveType. Ok, creo que debería usar List en su lugar. ¿Tiene algún punteros para la Lista también? –

5

Puede hacerlo por creating a custom value type, aunque yo personalmente preferiría cambiar su diseño y utilizar una lista en su lugar.

+0

Hola @Sean, ¿cómo lo hago si utilizo una lista ? –

+0

@RagunathJawahar ¿pensé que ya habías mapeado colecciones? El texto de tu pregunta lo dice. –

+0

Sí, lo hice para la lista , pero aún no lo he probado para String. Sin problemas, ya he encontrado un trabajo alternativo. Gracias de todos modos. –

Cuestiones relacionadas