Ormlite 在调用 createOrUpdate 时忽略字段

Ormlite ignore field when calling createOrUpdate

在调用 createOrUpdate 并传递对象时,是否可以将注释应用于某个字段,如果该对象已经存在,则不会更新特定字段。 用例是我的对象中有一个创建日期(设置为 Java 对象创建的当前时间)但是如果该对象已经存在于数据库中我不希望更新日期但希望其他字段已更新。对 id 进行查询(如果它不存在则创建)然后在我的代码中遍历其他字段并对任何不同的字段进行更新会更好吗?

Is there an annotation that I can apply to a field that when calling createOrUpdate and passing the object that the specific field will not be updated if the object already exists.

嗯。不,没有。您可以做的一件事是创建一个 class,它具有相同的字段,但 没有 日期字段。或者您可以使用 base-class 包含除日期字段之外的所有字段。然后有一个 sub-class 添加日期字段。两个 class 都会保存到同一个 table。当你想使用它时,你会用日期对象保存它。

希望对您有所帮助。

我使用 readOnly 属性完成了此操作。

@DatabaseField(columnName = "last_value_date", readOnly = true)
private Date lastValueDate;

在更新期间,所有 readOnly 属性都从更新查询中跳过。