我正在使用映射到遗留数据库的域,这些域广泛使用数据库级用户组来控制对表和列的授权。我需要映射以下简化的关联:
JailBooking { 整数id, 字符串名称, 案例 }
案例{ 整数id, 字符串causeNumber, 字符串caseType, String someFlag, String someOtherFlag }
现在,由于表/列权限,我们有一个用户组具有选择/插入/更新完整JailBooking表的完全权限,但只能在Case中选择id和causeNumber字段。尝试在JailBooking上设置Case记录时,任何尝试对Case进行读取都会导致异常,因为要为域中的所有列加载Case调用的查询。要保留JailBooking记录,我们实际上只需要Case中的ID列。
我知道,当懒惰提取对象时,通常会返回一个未初始化的代理,其中只包含域的id字段。有没有办法手动获取这个或类似的对象,只尝试从Case表中访问id列,并且可以接受持久化JailBooking记录?
如果它完全影响答案,我正在使用Grails 2.5.5。
答案 0 :(得分:0)
您可以使用jailBookingEntity.caseId来访问id,而无需初始化代理。您可以在每个相关实体上使用“Id”后缀来获取Id值。
如果您需要代理,可以使用Case.load(jailBookingEntity.caseId)