【发布时间】:2013-12-24 10:13:52
【问题描述】:
如何使用 ORMLite 创建自动删除级联?我正在使用 ormlite-core 和 omlite-jdbc 4.8 版。我试过了
public class Account {
// for QueryBuilder to be able to find the fields
public static final String NAME_FIELD_NAME = "name";
public static final String PASSWORD_FIELD_NAME = "passwd";
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(columnName = NAME_FIELD_NAME, canBeNull = false)
private String name;
@DatabaseField(columnName = PASSWORD_FIELD_NAME)
private String password;
}
和另一个班级
@DatabaseTable(tableName = "orders")
public class Order {
public static final String ACCOUNT_ID_FIELD_NAME = "account_id";
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(foreign = true, columnName = ACCOUNT_ID_FIELD_NAME,
canBeNull = false,index = true, foreignAutoRefresh = true,
columnDefinition = "integer references document(id) on delete cascade")
private Account account;
@DatabaseField
private int itemNumber;
@DatabaseField
private int quantity;
@DatabaseField
private float price;
}
但是当我删除父键记录时,不会引发异常,而且,如果尝试在订单表中插入具有未在 Account 表中定义的外键值的记录,则不会引发异常并且记录得到创建并插入数据库。
【问题讨论】:
标签: java mysql sql foreign-key-relationship ormlite