我正在考虑将greenDAO用于我的Android应用程序,但我注意到它似乎不支持除“not null”,“unique”和外键之外的任何类型的数据验证,无论是在SQL级别上(创建表时定义的约束)或Java级别(setter方法中的验证逻辑)。在这种情况下,“保留部分”似乎不会有用,因为您无法在单个方法中使用它们。我是否遗漏了某些内容,或者如果我想验证输入数据,是否真的需要在生成的Java对象之上添加另一层? (我有点困惑,如果没有提供任何包含验证逻辑的地方,框架如何有用。)
答案 0 :(得分:0)
<强> 1 强>
你可以写一个方法
boolean check ();
在INSERT或UPDATE之前手动调用的实体的KEEP-SECTION中。
<强> 2 强>
另一种可能性是扩展greendao生成器的源代码以支持检查:在property.java中,您可以向Property.Builder添加方法
public Property.Builder check (String expr) {
property.checkConditon = expr;
}
当然,您必须引入String checkCondition = "";
并使用它来在dao-template中生成dao。
问题: 对于新版本的greendao,您的更改将会丢失(但新版本可能已经包含此类功能)
第3 强>
第三种可能性是复制生成的CREATE TABLE语句,根据需要修改它并调用修改后的语句而不是原始语句,或者删除原始表并调用语句。
问题: 如果你的表格发生了变化,你将不得不重复这一点。