如何使用ORMLite查询只读字段

时间:2013-03-27 11:53:25

标签: ormlite readonly

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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