【问题标题】:Ormlite ignore field when calling createOrUpdateOrmlite 在调用 createOrUpdate 时忽略字段
【发布时间】:2016-01-10 18:16:06
【问题描述】:

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

【问题讨论】:

  • 如果有帮助记得考虑接受我的回答。

标签: java ormlite


【解决方案1】:

在调用 createOrUpdate 并传递对象时,我是否可以将注释应用于字段,如果对象已存在,则不会更新特定字段。

嗯。不,没有。您可以做的一件事是创建一个具有相同字段但没有日期字段的类。或者,您可以拥有一个包含除日期字段之外的所有字段的基类。然后有一个添加日期字段的子类。两个类都将保存到同一张表中。当您想使用它时,您可以将它与日期对象一起保存。

希望这会有所帮助。

【讨论】:

  • 这是完美的解决方案,应该是公认的答案
【解决方案2】:

我通过使用readOnly 属性来做到这一点。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多