2009-10-27 18 views
8

Tenemos un proyecto que utiliza JPA/Hibernate en el lado del servidor, las clases de entidad asignadas están en su propia Biblioteca-proyecto y el uso de anotaciones para ser asignada a la base de datos.anotaciones JPA en Android

Quiero utilizar estas clases en un Android-Proyecto -

¿Hay alguna forma de ignorar las anotaciones dentro de Android, al utilizar estas clases como estándar POJOs?

Respuesta

6

Al compilador no le importará mientras tenga el jar con las clases de anotación JPA en su classpath. Y si un sistema de instrumentación en tiempo de ejecución (como Hibernate) no está presente, las anotaciones son solo información adicional que está allí pero que no se usa. El único problema es asegurar la inclusión del jar JPA en su distribución.

+3

Y eso podría ser un problema. Realmente no quiero agrupar todos los JAR hibernate en el Android-Project. – dasmaze

+0

Si no puede agrupar las clases requeridas, la única solución que se me ocurre es usar un cargador de clases personalizado que elimine las anotaciones del bytecode. Es una tarea no trivial pero factible. – alphazero

+0

p.s. La transformación de bytecode no necesariamente tiene que ocurrir en la carga. La otra opción es ejecutar un proceso sobre las librerías del servidor y desinfectarlas para Android generando un nuevo conjunto de archivos de clase. – alphazero

5

Las anotaciones JPA reales son parte de Java SE 6, no hibernan. Por lo tanto, no es necesario tener Hibernate JAR para poder usar las clases con anotaciones JPA. Todo lo que necesita son las clases/interfaces que declaran las anotaciones a las que se está refiriendo, si puede pagarlas, la jarra de API completa de JPA es de aproximadamente 50k.

+0

¿No es 'Java EE 6'? –

0

Me acabo de encontrar con este problema y desde que uso experto para la construcción de mi proyecto androide que añade esta dependencia

<dependency> 
    <groupId>org.hibernate.javax.persistence</groupId> 
    <artifactId>hibernate-jpa-2.0-api</artifactId> 
    <version>1.0.1.Final</version> 
    </dependency> 
Cuestiones relacionadas