【问题标题】:Hibernate: what's the difference between @AuditTable and @AuditJoinTableHibernate:@AuditTable 和 @AuditJoinTable 有什么区别
【发布时间】:2018-06-19 11:15:03
【问题描述】:

我有一个休眠问题:@AuditTable 和 @AuditJoinTable 有什么区别,它们各自的用例是什么?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    @AuditTable

    第 7 章. 生成的表格及其内容

    对于每个被审计实体(即,对于每个实体至少包含 一个审计字段),创建一个审计表。默认情况下,审计 表的名称是通过在原始表中添加“_AUD”后缀创建的 名称,但这可以通过指定不同的后缀/前缀来覆盖 (参见第 3 章,配置)或在每个实体的基础上使用 @AuditTable 注释。

    审计表有以下字段:

    原始实体的 ID(如果使用,则可以多于一列 一个嵌入式或多个 id)

    修订号 - 一个整数

    修订类型 - 一个小整数

    来自原始实体的审核字段

    @AuditJoinTable

    9.3。 @OneToMany+@JoinColumn

    当使用这两个注解映射集合时,Hibernate 不生成连接表。然而,Envers 必须这样做,所以 当您阅读相关实体具有的修订版时 改变了,你不会得到错误的结果。

    为了能够命名附加连接表,有一个特殊的 注释:@AuditJoinTable,与 JPA 的语义相似 @JoinTable。

    此外,@AuditTable 适用于 @Target(value=TYPE),而 @AuditJoinTable 适用于 @Target(value={FIELD,METHOD})。

    @AuditJoinTable : https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/envers/AuditJoinTable.html

    @AuditTable :https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/envers/AuditTable.html#annotation_type_required_element_summary

    【讨论】:

    • 乐于助人:)
    猜你喜欢
    • 2013-12-14
    • 2011-08-06
    • 2021-09-11
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多