我正在尝试将ORMLite作为我正在开发的项目的ORM。我正在将java类映射到具有一些审计字段的表(即,updatedby,updatedtime等)。审计字段由数据库使用触发器维护,以确保无论用户使用哪个前端,这些字段将始终在更新记录时正确更新。
我需要在客户端应用程序中包含这些字段,以便在上次更新记录时通知用户,但用户无法更改它们。有没有办法注释该类,以便ORMLite不会尝试对这些字段执行更新或将它们包含在insert语句中。如果这些字段包含在更新语句中,数据库将拒绝更新(这就是为什么我不能只回写从数据库查询的原始值)。
我尝试在Java字段上使用@DatabaseField(persisted = false)
注释,但之后根本不会查询它们,因此Java对象永远不会填充这些字段。
基本上,我需要将这些字段包含在SELECT
语句中,但不包括在INSERT
或UPDATE
语句中(相当于@DatabaseField(immutable = true)
注释)。