栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Hibernate EnVers中的@NotAudited和RelationTargetAuditMode.NOT_AUDITED有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hibernate EnVers中的@NotAudited和RelationTargetAuditMode.NOT_AUDITED有什么区别?

如果您根本不想审核值/关系,请在字段上使用NotAudited。我相信您可以在具有或没有诸如OneToMany,ManyToMany或Column之类的关系的字段上使用它。如果要审核值,请在关系字段上使用RelationTargetAuditMode.NOT_AUDITED,而不要审核关系另一侧的实体。例如,您要审核ID
/键值,而不要审核相关表。

您还可以将RelationTargetAuditMode应用于整个类,我认为这只是针对该类中的所有关系不审核另一端。这让我感到困惑,因为我错误地使用了此批注来表示不要审核下面的实体,这不是什么意思。如果您不希望对实体进行审核,则根本不需要在实体类上使用审核注释。在引用该实体的其他审核实体上,您必须对关系字段使用NotAudited或RelationTargetAuditMode.NOT_AUDITED。

官方文档不是关于此主题的好文章(http://docs.jboss.org/hibernate/orm/4.2/devguide/en-
US/html/ch15.html
),甚至根本没有提到NotAudited。

在过去的项目中,我需要审核一组非常特定的表而不是其他表,因此我需要使用这些注释。我与某些审计实体之间的某些非审计实体具有外键关系。我经常使用RelationTargetAuditMode.NOT_AUDITED注释,以便至少审核外键值/
ID,而不是审核关系另一端的实体。如果没有此批注,则会遇到运行时异常,ENVERS会尝试将未审核实体的审核记录插入到审核表中,并且该表将不存在。我将NotAudited注释用于一些我不需要审核的ManyToMany联接表关系,并且在已审核实体表本身上没有要记录的内容(没有外键ID
/值)。

哦,是的-文档没有说明如果您同时使用两者(不确定哪一个具有优先权)会发生什么,但是我不认为打算在给定的字段上同时使用两者。使用一个或另一个。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号