通常,在为类的某个属性定义映射时,NHibernate会在获取值后立即将其保存在属性中。它要么在获取对象时立即获取,要么在属性getter的第一次调用时延迟加载,但一旦从数据库中加载,它就会获取。
如果我错了,请纠正我。
是否可以配置一个映射,使同一getter的每次调用都导致NHibernate转到数据库并再次读取该值?
背景:我有一张桌子和一个相应的类
ExcelFile
卓越档案
卓越档案
包含属性
IsLocked
LockedBy
和
DateLocked
,以便在有人处理文件时锁定该文件。他一关闭文件,锁就被释放了。
-
爱丽丝加载DB条目以显示它。它还显示
孤岛
-
鲍勃也这么做,这是假的。
-
5分钟后,Alice打开文件:应用程序检查
孤岛
-
Bob打开文件:应用程序检查
孤岛
已经被缓存并且仍然
false
. 所以他设置了锁并打开了应用程序。
对于设置锁,我可以使用直接使用本机SQL查询进入数据库的方法。到目前为止,我在阅读这些属性时也做了同样的工作。
但是我需要用
孤岛
正在使用HQL设置。另外,简单地读写对应表字段的方法本身的编码引入了映射逻辑抗拒的第二个地方,这不是很好。