2010-01-04 22 views
6

Mi persistence.xml tiene 2 unidades de persistencia. Cada uno de ellos tiene varios elementos <class>.¿Por qué necesitamos especificar la clase dentro del elemento <persistence-unit>?

Pensé que debemos especificar todas las clases relacionadas con cierta unidad de persistencia. Pero olvidé accidentalmente especificar el elemento de clase para la nueva entidad, pero el programa funcionó bien incluso sin él. Luego eliminé todos los elementos de clase y todo funcionó bien. Entonces, ¿por qué lo necesitamos?

código de ejemplo:

<persistence-unit name="JiraManager" transaction-type="RESOURCE_LOCAL"> 
    <class>chartdemo.model.domain.Category</class> 
</persistence-unit> 

Respuesta

7

Si no especificó clases en el archivo persistence.xml su administrador de persistencia administrará todas las clases de entidad en la ubicación donde existe el archivo persistence.xml (archivo jar, directorio de clases).

Las clases de listado le dan flexibilidad para elegir entidades y agruparlas en unidades de persistencia. Puede tener un control más preciso de lo que consiste un nombre de unidad persistente dado; también puede incluir entidades de otros archivos jar, etc.

Por lo tanto, en la mayoría de los casos básicos enumerar clases es innecesario, y la mayoría de las impedancias JPA descubren todas las entidades por usted.

+0

Descubrí que podemos evitar la gestión de todas las clases de entidad solo mediante el elemento . – Roman

3

Algunos proveedores de persistencia (Hibernate por ejemplo) escanear la ruta de clase para las clases de entidad.

+0

¿Significa que, en general, no deberíamos agregar el elemento de clase dentro de la unidad de persistencia? – Roman

+0

sí (15 caracteres req) – Bozho

Cuestiones relacionadas