2017-11-23 3 views
0

Android Room 라이브러리를 사용합니다. 엔티티 제품 :룸 오류 - 처리 방법은 무엇입니까?

@Entity(tableName = "products", foreignKeys = @ForeignKey(
     entity = Category.class, 
     parentColumns = "code", 
     childColumns = "category_id")) 
public class Product { 

    @PrimaryKey(autoGenerate = true) 
    private Long id; 

    @ColumnInfo(name = "name") 
    private String name; 

    @ColumnInfo(name = "description") 
    private String description; 

    @ColumnInfo(name = "category_id") 
    private String categoryId; 

및 두 번째 엔티티가 있습니다. 내가 제품의 목록 삽입하려고하면

@Entity(tableName = "categories") 
public class Category { 

    @PrimaryKey 
    @NonNull 
    private String code; 

    @ColumnInfo(name = "name") 
    private String name; 

    @Ignore 
    private List<Product> products; 

는 :

new AsyncTask<Void, Void, Void>() { 
      @Override 
      protected Void doInBackground(Void... voids) { 
       MyApplication.get().getDB().productDao().insertAll(productList); 
       return null; 
      } 
     }.execute(); 

을 나는 DB하려고 삽입 제품 오류가 발생합니다.

어떻게 해결할 수 있습니까?

+0

https://stackoverflow.com/questions/44633483/android-room-foreign-key-constraint-failed –

+0

@kamal verma는 중복 된 장소입니까? 내 문자열 UUID 또는 다른 종류의 목발을 사용하고 싶지 않다 – ip696

+0

같은 오류 https://stackoverflow.com/questions/44633483/android-room-foreign-key-constraint-failed –

답변

0

이것은 과 일대 다 소유 관계를 정의하는 Category 클래스의 @Ignore 주석과 관련이있을 것이라고 생각합니다.

@Ignore 주석을 제거하면 어떻게되는지보십시오. 그래도 작동하지 않으면 @Relation 주석을 사용하여 일대 다 관계를 정의 할 수 있습니다. (출처 : this SO answer)