【问题标题】:Associations, jointable with three keys关联,可通过三个键连接
【发布时间】:2013-07-03 07:21:02
【问题描述】:

我有问题:

我可以使用带有树键的 joinTable,例如:

User_UserDescription_UserReg_JOIN:

User_ID   
------------
UserDescription_ID 
--------------------
UserRegistration_ID
--------------------

它看起来像这样:

User_UserDescription_UserReg_JOIN:
  |   1  |     2    |      3      |

有可能有这样的关节吗?我该怎么办,求教。

【问题讨论】:

    标签: hibernate jpa associations hibernate-mapping


    【解决方案1】:

    一个简短的答案,因为您没有提供任何 @Entities :使用 @EmbeddedId

    前:

    @Embeddable
    public class UserDescRegId {
      private Long userId;
      private Long userDescriptionId;
      private Long userRegId;
      //TODO add getters,setters, constructor, equals, hasCode...
    }
    
    @Entity
    public class UserDescReg {
      private UserDescRegId id = new UserDescRegId();
      private Description description;
      private Registration reg;
      private User user;
      @EmbeddedId
      @AttributeOverrides( {
            @AttributeOverride(name = "user", column = @Column(name = "", nullable = false)),
            @AttributeOverride(name = "description", column = @Column(name = "description", nullable = false)),
            @AttributeOverride(name = "registration", column = @Column(name = "reg", nullable = false)) })
      //TODO complete @AttributeOverrive 
      public UserDescRegId getId() {
            return this.id;
        }
      //TODO getters/setters,
     }
    

    【讨论】:

    • 嗨。谢谢你回答我。我有一个问题:为什么你没有在任何地方指定 @AttributeOverride(name="") 。我看到该用户是在名称参数中指定的,那么其他用户呢? column=@Column(name="") 也让我感到困惑。里面没有用户。为什么?你试图对用户做什么的把戏是什么?我希望用户参考特定的描述和特定的 RegestrationDate?为什么我这样做
    • 这只是一个简短的例子。我不能告诉你应该插入什么,因为你没有提供任何实体(你可以看到你的问题太模棱两可并且被否决了)。因此,请查看 JPA 文档以帮助您解决缺失的部分。
    • 编辑:@AttributeOverrides 由于一些拼写错误而被修改
    猜你喜欢
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    相关资源
    最近更新 更多