Frage

Wir haben ein Projekt, das JPA verwendet / Hibernate auf der Serverseite, sind die abgebildeten Entitätsklassen in ihrem eigenen Bibliothek-Projekt und verwenden Sie Anmerkungen zu der Datenbank zugeordnet werden. Ich mag diese Klassen in einem Android-Projekt verwenden - ist es eine Möglichkeit, die Anmerkungen im Android zu ignorieren, diese Klassen als Standard POJOs zu verwenden

?
War es hilfreich?

Lösung

Der Compiler wird nicht kümmern, solange Sie das Glas mit den JPA-Annotation-Klassen in Ihrem Classpath haben. Und wenn ein Laufzeitinstrumentierungssystem (wie Hibernate) nicht vorhanden ist, sind die Anmerkungen nur zusätzliche Informationen, die es aber nicht verwendet. Das einzige Problem ist in Ihrer Distribution die Einbeziehung des PPV Glases gewährleistet wird.

Andere Tipps

Die tatsächlichen JPA Annotationen sind Teil der Java SE 6, nicht überwintern. So brauchen Sie nicht in den Ruhezustand JAR haben, um JPA kommentierten Klassen zu verwenden. Alles, was Sie brauchen, ist die Klassen / Schnittstellen, um die Anmerkungen der Erklärung Ihrer verweisen, wenn Sie es das volle JPA api Glas ist etwa 50k leisten können.

Ich lief in dieses Problem und da ich Maven für meine Android-Projekt Aufbau habe ich diese Abhängigkeit

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

Sie können mit Cmobilecom JPA für Android und Java. Es implementiert JPA 2.1-Spezifikation. So profitieren alle JPA Annotationen für Java wird ohne Änderungen für Android arbeiten. Fügen Sie einfach die folgenden Abhängigkeiten in Ihren Projekten.

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"
}

Disclaimer:. Ich bin ein Entwickler von Cmobilecom JPA

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top