【问题标题】:many to many relation with attributes using annotations使用注释与属性的多对多关系
【发布时间】:2013-08-29 11:37:08
【问题描述】:

我想知道如何使用注释@ManyToMany 创建表role_permission,同时考虑到表role_permission 中的created_at 属性。

我知道我可以这样做:

public class Role implements Serializable{

    @Id
    @Column(name = "_id")
    private String id;

    @Column(name = "name")
    @NotNull
    private String name;

    @Column(name = "description")
    private String description;

    @ManyToMany(cascade = {CascadeType.ALL})
    @JoinTable(name="role_permission", schema=joinColumns={@JoinColumn(name="idRole")}, inverseJoinColumns={@JoinColumn(name="idPermission")})
    private Set<Permission> permissions=new HashSet();

public class Permission implements Serializable{

    @Id
    @Column(name = "_id")
    private String id;

    @Column(name = "name")
    @NotNull
    private String name;

    @Column(name = "description")
    private String description;

    @ManyToMany(cascade = {CascadeType.ALL})
    @JoinTable(name="role_permission", schema=joinColumns={@JoinColumn(name="idPermission")}, inverseJoinColumns={@JoinColumn(name="idRole")})
    private Set<Permission> roles=new HashSet();

这样我可以避免为 role_permission 创建一个新类,但我不知道如何将 created_at 放在这个注释中。这可能吗?

【问题讨论】:

  • 第一个链接使用中介,我想避免这种情况,第二个不太清楚并使用哈希图,如果我想要表 role_permission 中的更多属性怎么办?还有其他选择吗?
  • 我不知道。如果有人知道替代解决方案将回答/评论。恕我直言,有时,最好的解决方案是我可以轻松理解、管理和修改的解决方案

标签: hibernate jpa annotations many-to-many


【解决方案1】:

我放弃了,我使用了中介。我刚刚按照本教程进行操作,效果很好。

http://www.mkyong.com/hibernate/hibernate-many-to-many-example-join-table-extra-column-annotation/

【讨论】:

  • 谢谢! ....holy komoly,尝试使用 JPA 注释创建映射到具有额外属性的多对多连接表的工作量很大。这可能是在其他 5 个示例之后。有趣的是,我对 13K Java 类石油业务发票应用程序太难了,以至于他们将属性从多对多表中移出/非规范化到两个参考。数据库中的表。虚幻....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 2012-10-27
  • 2022-10-25
  • 1970-01-01
相关资源
最近更新 更多