Valor opcional de mapeo de Hibernate

Tengo dos clases que necesitan ser mapeadas en XML (eventualmente todas serán modificadas a Anotaciones, pero actualmente necesitamos soportar las mapeos en XML).

Tengo un objeto de usuario que actualmente se ve así:

public class User {
    private Key key;
    private Name name;
}

Necesito agregar Preferencias para algunos de estos usuarios (tenemos dos tipos diferentes de usuarios que comparten el mismo objeto).

public class Preferences {
   private Person person; //The person key acts as our foreign and primary key
   private Integer numToShow;
   private String defaultScreenToShow;
}

Mi persona XML es como tal:

<hibernate-mapping package="com.example.entities">
    <id key column="PERSON_ID" /> <!-- Leaving out custom generator -->

     <!-- 
         Not sure what the column needs to be here, as 
         preferences are in own table.  Also read it has to 
         be a faked out many-to-one here as not all users will
         have preferences. 
     -->
    <many-to-one name="preferences" not-null="false" /> 
    <component class="com.example.entities.Name">
        <property column="first_name" name="first" />
        <property column="last_name" name="last" />
    </component>

</hibernate-mapping>

Mi archivo XML de preferencias es como tal:

<hibernate-mapping package="com.example.entities">
    <property column="default_screen" name="defaultScreenToShow" />
    <property column="number_search_results" name="numToShow" />
    <!-- Not sure what the ID needs to be here -->
</hibernate-mapping>

Soy bastante verde con Hibernate con toda honestidad, pero esto parece algo que debería ser bastante fácil de mapear. Pensé que tenía las asignaciones hechas correctamente, pero obtengo una excepción de deserialización al intentar cargar a una persona (he marcó las clases como serializables, en vano).

Respuesta 1

Echa un vistazo al capítulo Asignaciones de asociación de la documentación de referencia de Hibernate, ya que explica varias formas diferentes de asignar todo tipo de asociaciones, dependiendo de si la relación es unidireccional o bidireccional, uno a uno, uno a muchos o muchos a muchos, y si la asociación entre las tablas es directa o no a través de una tabla de unión.

Respuesta: 2

Tengo dos versiones de addValues, una con parámetros vararg. double addValues ​​(double ... values) {resultado doble = 0d; para (valor doble: valores) resultado + = valor; resultado de retorno; } ...

Terminé mi aplicación de cuestionario hace unos días. Ahora, quiero publicar un segundo cuestionario con diferentes preguntas. Copié el proyecto en Eclipse y cambié las preguntas. Ahora, cuando lo instale en mi ...

Estoy buscando la mejor manera de almacenar el stacktrace (obtenido a través de Thread.dumpStack ()) y el rastreo de excepción en la base de datos. Estoy desarrollando una aplicación que hace el rendimiento de la aplicación. Traza el método ...

Recientemente comencé a tomar un curso de Ciencias de la Computación para entender más la programación y parece haber tocado un obstáculo con nuestro laboratorio en ArrayLists. El propósito del programa es poner x cantidad de ...