2015-06-18 7 views
0

Пожалуйста, помогите мне,Ошибка взаимодействия первичного ключа ActiveAndroid

Мне нужно индивидуальное первичное ключевое имя и отношения.

Мои модели:

@Table(name = "Items", id = "ItemId") 
public class Item extends Model { 

@Column(name = "Name") 
public String name; 

@Column(name = "Category") 
public Category category; 

public Item() { 
    super(); 
} 

public Item(String name, Category category) { 
    super(); 
    this.name = name; 
    this.category = category; 
} 

} 
@Table(name = "Categories") 
public class Category extends Model { 

@Column(name = "Name") 
public String name; 

public List<Item> items() { 
    return getMany(Item.class, "Category"); 
} 

} 

и мой код:

List items = new Select().from(Item.class).execute(); 
Toast.makeText(this, items.get(0).name, Toast.LENGTH_LONG).show(); 

Результат: Ошибка: Недопустимый индекс 0, размер 0

Я модифицировал первичного ключа имя модели и БД от ItemId до Id:

@Table(name = "Items") 

Результат: ОК

Как исправить эту проблему?

https://github.com/pardom/ActiveAndroid/issues/380

ответ

0

Я найти проблему

Исправьте Model.java в com.activeandroid Line 260

  if (entity == null) { 
       TableInfo tableInfo = Cache.getTableInfo(entityType); 
       entity = new Select().from(entityType) 
         .where(tableInfo.getIdName() + "=?", entityId).executeSingle(); 
      }