2013-07-03 37 views
9

Làm cách nào để triển khai mối quan hệ một-nhiều trong ORMLite Android?Mối quan hệ một-nhiều trong ORMLite Android

hãy tìm ví dụ

public class A { 
private String name; 
    @DatabaseField (foreign = true, foreignAutoRefresh = true, columnName = "A") 
    private B b; 
    @DatabaseField(columnName = "author") 
    private String authorName; 
} 

public class B { 
    @DatabaseField(generatedId = true, columnName = "id") 
    private long id; 
    @DatabaseField(columnName = "name") 
    private String name; 
    @ForeignCollectionField 
    Collection<A> aees; 
} 

B có bộ sưu tập của A. Tôi gọi dao.create(b);

Bây giờ tôi tạo dao của b, vì b có tất cả các dữ liệu. Nhưng bảng B chỉ tạo ra với dữ liệu, A không bao giờ được tạo ra. Vui lòng có thể giúp đỡ một số?

Trả lời

14

Bây giờ tôi tạo dao b, vì b có tất cả dữ liệu. Nhưng bảng B chỉ tạo ra với dữ liệu, A không bao giờ được tạo ra. Vui lòng có thể giúp đỡ một số?

Phải. Bạn cần tạo các mặt hàng A bằng cách sử dụng:

for (A a : b.aees) { 
    aDao.create(a); 
} 

ORMLite không tự động tạo những mục đó cho bạn.

Bạn có thể xem mã nguồn của foreign-collection example program.

0

Bạn phải ghi đè DAO của lớp B, vì vậy khi đối tượng B được tạo hoặc cập nhật, các đối tượng trong bộ sưu tập cũng sẽ được cập nhật.

Hãy xem câu hỏi này: Collections in ORMLite.

+0

Bạn có thể chỉnh sửa các ví dụ và hiển thị như thế nào để đạt được htis? – Rockin

+0

mã ở đâu bạn tạo dao? – bogdan

-1

tôi đang đối mặt với cùng một vấn đề. json của tôi là như sau:

{ 
    "parent":{ 
      "name":"ABC", 
      "children":[ 
          {"childName":"1"}, 
          {"childName":"2"}, 
          {"childName":"3"} 
         ] 
      } 
} 

tôi giải quyết vấn đề như thế này:

Parent parent = new Parent(); 
parent.setName("ABC"); 

while(get children one by one from json data) 
{ 
    childrenArray.add(new Child(its Name)); 
} 

parentDAO.create(parent); 

for(Child child : childrenArray) 
{ 
    child.setParent(parent); 
    childDAO.create(child); 
} 
Các vấn đề liên quan