Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android DB字段上的唯一约束似乎不适用于ORMlite 4.31_Android_Sqlite_Ormlite - Fatal编程技术网

Android DB字段上的唯一约束似乎不适用于ORMlite 4.31

Android DB字段上的唯一约束似乎不适用于ORMlite 4.31,android,sqlite,ormlite,Android,Sqlite,Ormlite,这是我的实体的字段声明 @DatabaseField( canBeNull = false , unique = true ) private String name; 当我创建实体的两个实例时,它们都具有完全相同的名称,SQLliteDatabase允许我添加这两个实例。这两个都是defo添加到数据库中的,我已经通过DDMS检查过了 有没有其他方法可以强制执行唯一约束?我认为您应该使用ORMLite 4.41或更高版本。我也有同样的问题(4.38版本)。在4.41版本中,唯一约束被成

这是我的实体的字段声明

    @DatabaseField( canBeNull = false , unique = true )
private String name;
当我创建实体的两个实例时,它们都具有完全相同的名称,SQLliteDatabase允许我添加这两个实例。这两个都是defo添加到数据库中的,我已经通过DDMS检查过了


有没有其他方法可以强制执行唯一约束?

我认为您应该使用ORMLite 4.41或更高版本。我也有同样的问题(4.38版本)。在4.41版本中,唯一约束被成功映射。

在这个问题上又花了3个小时,但最终解决了它。我已经升级到4.41,但这并没有造成任何影响。 问题是我在数据库创建之后添加了约束,当我按照Mathias Lin检查约束是否存在时,我看不到它。我删除了数据库并重新创建了它。普雷斯托,很好用。学童的错误真的很严重


Mathias,我会接受你的回答,但不能接受,因为这是在评论中。

还不是一个对你有帮助的答案,但问题是:a)数据库表是由ORMLite自动创建的还是由你手动创建的?如果是手动操作,是否在DB中设置了约束?b) 仅供参考-您是否必须遵守4.31?因为4.41已经出局了。c) 您是否可以查看生成的DB并检查其中是否添加了约束(如果DB已自动创建),而没有绑定到任何版本,因为我们今天才开始使用此框架。表和字段是由ORMLETHE自动创建的。语法看起来正确。您可以发布创建的表结构并最终发布JavaBean类吗。您是否尝试使用uniqueCombo=true而不是unique来进行测试(即使您只有一个unique字段)?或者,尝试使用uniqueIndexName=“ixName”。只是一些测试方法,因为我看不出你上面的代码有任何错误。顺便说一句:ORMLite google组在并且非常活跃,Gray(ORMLite作者)通常在那里回复得非常快,但他通常也在这里,所以。这是我的pojo entity@DatabaseField(generatedId=true)私有int-id;@DatabaseField(canBeNull=false,unique=true)私有字符串名@外汇收汇领域私人外汇收汇项目;仅供参考:我在changelog文件中没有看到任何在4.38和4.41之间修复的唯一性: