2012-09-14 23 views
24

IntelliJ IDEA resalta nombres persistentes @Entity class con "No se puede resolver el símbolo" en rojo en JPQL que distrae y oculta problemas reales.IntelliJ IDEA destaca @Estity class names con "No se puede resolver el símbolo" en JPQL

Así, por ejemplo, declaro una consulta en mi repositorio:

private static final String READ_BY_CANDIDATE_KEY = "SELECT cr FROM Entity AS cr left join cr.relationship AS re left join fetch cr.relationship2 WHERE re.candidateKey=:ID"; 

.. y "Entidad" está subrayada, a pesar de que "Entidad" es un nombre de clase válido, y tiene la anotación @Entity . Cuando el código realmente se ejecuta, no hay problemas.

Imagino que se requiere algún tipo de configuración para que el IDE sepa qué clases son válidas. ¿Cómo se hace esa configuración?

Actualización: Tengo una faceta JPA, pero no ve las clases anotadas. Se parece requerir un persistence.xml o orm.xml (que no utiliza mi proyecto)

Respuesta

17

Asegúrese de que tiene JPA o Hibernate faceta configured en IntelliJ IDEA para su módulo.

+0

ver la actualización re JPA y persistencia XML –

+1

¿Estás usando Spring? Si es así, se requiere Spring facet. – CrazyCoder

+0

¿podría darnos instrucciones sobre cómo hacer lo anterior, por favor? –

26

Parece que no ha seleccionado el proveedor de JPA predeterminado en la configuración de facetas. Según el proveedor que esté utilizando, elija uno de la lista. Las opciones disponibles son EclipseLink, Hibernate, OpenJPA, TopLink

+0

¿Dónde configuro esto exactamente? – powder366

+7

Vaya a Archivo> Estructura del proyecto> Facetas. Luego haga clic en el ícono + y agregue JPA a su proyecto/módulo. Después de hacer esto, puede seleccionar un Proveedor de JPA predeterminado. – Jelle

Cuestiones relacionadas