1

我正在尝试将 ORMLite 作为我正在开发的项目的 ORM。我正在将一个 java 类映射到一个具有一些审计字段(即,updatedby、updatedtime 等)的表。审计字段由数据库使用触发器维护,以确保无论用户使用什么前端,这些字段在更新记录时始终会正确更新。

我需要在我的客户端应用程序中包含这些字段,以便在上次更新记录时通知用户,但用户无法更改它们。有没有办法注释类,以便 ORMLite 不会尝试对这些字段执行更新或将它们包含在插入语句中。如果这些字段包含在更新语句中,数据库将拒绝更新(这就是为什么我不能只写回从数据库查询的原始值)。

我尝试@DatabaseField(persisted = false)在 Java 字段上使用注释,但是它们根本不会被查询,因此 Java 对象永远不会填充这些字段。

基本上,我需要将这些字段包含在SELECT语句中,但不包含在INSERTorUPDATE语句中(相当于@DatabaseField(immutable = true)注释)。

4

1 回答 1

1

有趣的模式。 ORMLite当时不支持该功能,但现在从 4.46 版开始支持。

现在有一个@DatabaseField(readOnly=true)注释字段。

于 2013-03-27T13:16:19.813 回答