OrmLite可以成功创建表,但在插入记录后会导致错误

时间:2014-09-12 07:43:17

标签: android sqlite ormlite

在我的项目中,我使用OrmLite创建了一个名为OrderItem的表,在logcat中它成功创建了表,但是当我尝试插入记录时,它显示了一个异常。我想知道为什么会这样吗?请我的logcat。

由于

创建OrderItem后

09-12 07:30:13.075: I/TableUtils(22428): creating table 'OrderItem'

09-12 07:30:13.085: I/TableUtils(22428): executed create table statement changed 1 rows: CREATE TABLE `OrderItem` (`custom_taste` VARCHAR , `order_id` INTEGER , `name` VARCHAR , `id` INTEGER PRIMARY KEY AUTOINCREMENT , `food_id` INTEGER , `quantity` INTEGER ) 

在OrderItem中插入记录后,显示找不到food_id列。在上面的logcat中创建了food_id列。

09-12 07:32:00.885: E/SQLiteLog(22428): (1) table OrderItem has no column named food_id

09-12 07:32:00.905: W/System.err(22428): java.sql.SQLException: Unable to run insert stmt on object com.expresspos.mm.object.OrderItem@40ddbdd8: INSERT INTO `OrderItem` (`custom_taste` ,`order_id` ,`name` ,`food_id` ,`quantity` ) VALUES (?,?,?,?,?)

1 个答案:

答案 0 :(得分:0)

在等待某人的回答时,我搜索了一些解决方案。此链接很有用https://groups.google.com/forum/#!topic/ormlite-android/k-i1MnaL-aQ

这是我的解决方案,

 // some set of alter table statements to tweak the schema
orderItemDao.executeRaw("ALTER TABLE `OrderItem` ADD COLUMN food_id INTEGER DEFAULT 0;");

我没想到在添加列时我需要更改OrderItem表。我必须改变表,因为我已经创建了我喜欢的数据库。

谢谢