Android中的JPA注释
-
06-07-2019 - |
题
我们有一个在服务器端使用JPA / Hibernate的项目,映射的实体类在他们自己的Library-Project中,并使用Annotations映射到数据库。我想在Android项目中使用这些类 - 有没有办法忽略Android中的注释,将这些类用作标准POJO?
解决方案
只要您的类路径中包含带有JPA注释类的jar,编译器就不会关心。如果不存在运行时检测系统(例如Hibernate),则注释只是那些但不使用的额外信息。唯一的问题是确保在您的发行版中包含JPA jar。
其他提示
实际的JPA注释是Java SE 6的一部分,而不是hibernate。因此,您不需要让Hibernate JAR能够使用JPA带注释的类。 你需要的只是声明你引用的注释的类/接口,如果你能负担得起,完整的JPA api jar大约是50k。
我刚遇到这个问题,因为我使用maven来构建我的android项目,所以我添加了这个依赖
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
您可以将 Cmobilecom JPA 用于android和java。它实现了JPA 2.1规范。因此,所有用于Java的JPA注释都可以在没有任何更改的情况下用于android。只需在项目中添加以下依赖项即可。
Android:
dependencies {
implementation("com.cmobilecom:cmobilecom-jpa-android:${version}@aar") {
transitive = true
}
annotationProcessor "com.cmobilecom:cmobilecom-jpa-processor:$version"
}
JDBC:
dependencies {
implementation "com.cmobilecom:cmobilecom-jpa-jdbc:$version"
// annotation processor: generate static metamodel
compileOnly "com.cmobilecom:cmobilecom-jpa-processor:$version"
}
免责声明:我是Cmobilecom JPA的开发人员。
不隶属于 StackOverflow