2011-06-01 12 views
8

Recibo este error y no tengo idea del motivo: la clase "Departamento" está asignada, pero no está incluida en ninguna unidad de persistencia.La clase "Departamento" está asignada, pero no está incluida en ninguna unidad de persistencia

Tengo dos proyectos. Una de ellas es En mi persistence.xml, entre la etiqueta, hay sólo dos líneas:

<persistence-unit name="UserJPA"> 
</persistence-unit> 

Mi clase es:

package br.com.jm.user; 
import java.io.Serializable; 
import javax.persistence.Entity; 
import javax.persistence.Column; 
import javax.persistence.Id; 
import javax.persistence.Table;; 

@Entity 
@Table(name = "DEPARTMENT") 
public class Department implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @Id 
    private Long id; 
    private String name; 

//getters and setters 
} 

que estoy usando EclipseLink2.1.2. En realidad, puedo eliminar esto si hace las cosas más fáciles.

abrazos, Demetrio

Respuesta

10

Es necesario especificar qué clases están incluidos en la unidad de persistencia en el archivo persistence.xml, así:

<persistence-unit name="UserJPA"> 
    <class>br.com.jm.user.Department</class> 
</persistence-unit> 
+0

ahora tengo un nuevo mensaje de error Obtuve la "Clase obligatoria javax.faces.FactoryFinder no existe en las bibliotecas seleccionadas" cuando intenté crear un "Nuevo proyecto web dinámico" en las capacidades de JSF. Gracias de antemano. Demetrio – Demetrio

+0

@Demetrio: estoy bastante seguro de que no está relacionado con la configuración de su JPA. Desafortunadamente tengo 0 conocimiento de JSF. –

2

El persistence.xml debe tener:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
    version="2.0"> 
    <persistence-unit>..</persistence-unit> 
</persistence> 
13

Para cualquier persona que encuentre esta pregunta anterior al buscar el error "La clase xxxx está asignada, pero no está incluida en ninguna unidad de persistencia" en Eclipse o RAD, un comentario en this pregunta y la respuesta tiene la solución que funcionó para mí:

  1. Haga clic derecho en el proyecto y seleccione Propiedades.
  2. Seleccionar APP
  3. Seleccione el botón de opción "Descubre clases anotada automáticamente"
  4. OK y esperar a que el proyecto para terminar de construir.

Estos pasos me funcionaron.

+0

¡Genial! ¡¡Gracias!! – Michele

4

Haga clic derecho sobre el archivo persistance.xml en su explorador de proyectos

continuación, haga clic en Lista Sincronizar Clase

que va a generar automáticamente las etiquetas de Clase

enter image description here

+0

Este fue el caso para mí cuando intentaba reconstruir mi área de trabajo. – Acewin

Cuestiones relacionadas