Android Room不会使用自动生成的主键插入对象

时间:2018-09-27 08:19:48

标签: android android-studio android-room

我只是想在Android Studio中为插入函数创建一个非常简单的数据库应用,而我正在尝试为表“ Items”插入一行。当我运行它时,没有任何错误。但是当我使用应用程序本身时,输入项目名称并保存后,我的应用程序崩溃。我在删除“ autoGenerate = true”后手动输入项目ID时没有问题。

我对Room还是很陌生,我正在练习。我检查了一些有关自动生成的主键的问题,但是还没有找到解决方法。如果您已经提出此要求,我表示歉意。

这是我对Item类的定义:

"scripts": [
    "../node_modules/jquery/dist/jquery.js",
    "../node_modules/bootstrap/dist/js/bootstrap.js",
    "./src/common/toolTipScript.js"
],

我的道:

 @Entity(tableName = "items")
 public class Item {

  @PrimaryKey (autoGenerate = true)
  private int id;

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


  public int getId() {
     return id;
  }


  public void setId(int id) {
     this.id = id;
  }


  public String getName() {
     return name;
  }

  public void setName(String name) {
     this.name = name;
  }
}

这是我用来通过用户输入获取信息并插入的代码:

@Dao
public interface MyDao {


@Insert
public void addItem(Item item);

}

数据库类:

private EditText ItemName;

ItemName = view.findViewById(R.id.et_item_name); //et_item_name is an edittext
String itemname = ItemName.getText().toString();

 Item item = new Item();
 item.setName(itemname);

 MyActivity.appDatabase.mydao().addItem(item);

我的活动:

@Database(entities = {Item.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

public abstract MyDao mydao();
}

0 个答案:

没有答案