2009-10-27 52 views
8

Chúng tôi có một dự án sử dụng JPA/Hibernate ở phía máy chủ, các lớp thực thể được ánh xạ nằm trong Thư viện dự án của riêng chúng và sử dụng Chú thích để ánh xạ tới cơ sở dữ liệu.Chú thích JPA trong Android

Tôi muốn sử dụng các lớp trong một Android Project -

Có cách nào để bỏ qua các chú thích trong Android, sử dụng các lớp này như là tiêu chuẩn POJO?

Trả lời

6

Trình biên dịch sẽ không quan tâm miễn là bạn có bình chứa các lớp chú thích JPA trong đường dẫn lớp của bạn. Và nếu một hệ thống thiết bị đo thời gian chạy (chẳng hạn như Hibernate) không có mặt, các chú thích chỉ là thông tin bổ sung ở đó nhưng không được sử dụng. Vấn đề duy nhất là đảm bảo việc bao gồm bình JPA trong bản phân phối của bạn.

+3

Và đó có thể là một vấn đề. Tôi không thực sự muốn gói tất cả các hibernate-JAR vào Android-Project. – dasmaze

+0

Nếu bạn không thể bó các lớp được yêu cầu, thì giải pháp duy nhất mà tôi có thể nghĩ đến là sử dụng trình nạp lớp tùy chỉnh để loại bỏ các chú thích khỏi bytecode. Một nhiệm vụ không tầm thường của nó nhưng có thể thực hiện được. – alphazero

+0

p.s. Việc chuyển đổi bytecode không nhất thiết phải xảy ra khi tải. Các tùy chọn khác là chạy một quá trình trên libs máy chủ và vệ sinh chúng cho android bằng cách tạo ra một bộ mới của classfiles. – alphazero

5

Chú thích JPA thực tế là một phần của Java SE 6, không phải ngủ đông. Vì vậy, bạn không cần phải có JAR Hibernate để có thể sử dụng các lớp chú giải JPA. Tất cả những gì bạn cần là các lớp/giao diện khai báo các chú thích mà bạn đang tham chiếu, nếu bạn có thể đủ khả năng nó, thì JPA api jar đầy đủ là khoảng 50k.

+0

Không phải là nó 'Java EE 6'? –

0

Tôi chỉ chạy vào vấn đề này và kể từ khi tôi sử dụng maven cho việc xây dựng dự án Android của tôi tôi đã thêm sự phụ thuộc này

<dependency> 
    <groupId>org.hibernate.javax.persistence</groupId> 
    <artifactId>hibernate-jpa-2.0-api</artifactId> 
    <version>1.0.1.Final</version> 
    </dependency> 
Các vấn đề liên quan