【问题标题】:Bind two Entity without intermediate Entity spring data jpa绑定两个没有中间Entity的Entity spring data jpa
【发布时间】:2020-07-30 06:53:36
【问题描述】:

我有一个用户表(和实体)

create table users(
  id                              number(9)          not null,
  alias                           varchar2(200 char),
  name_en                         varchar2(200 char),
  state                           varchar2(1)        not null
);

和用户组

create table user_groups(
  group_id                        number(9)          not null,
  alias                           varchar2(200)      not null,
  name_en                         varchar2(200 char),
  state                           varchar2(1)        not null,
  constraint user_groups1 primary key (group_id)
);

组用户存储在绑定表中

create table user_group_binds(
  group_id                        number(9)          not null,
  user_id                         number(9)          not null,
  constraint user_group_binds1 foreign key (group_id) references user_groups(group_id),
  constraint user_group_binds2 foreign key (user_id) references users(id)
);

我想在我的组实体列表中拥有 userEntity(没有绑定实体)。有任何想法吗? 当然,我可以使用@Query 注解,但我还有其他与组映射的实体,它们会自动获取组实体。 我可以覆盖自动方法吗?

【问题讨论】:

  • 你必须使用@JoinTable

标签: java hibernate jpa spring-data-jpa


【解决方案1】:

您可以使用@JoinTable 并使用UserGroup 实体中的连接表定义列映射

  @OneToMany(cascade = CascadeType.ALL)
  @JoinTable(name = "user_group_binds",
      joinColumns = {@JoinColumn(name = "group_id", referencedColumnName = "group_id")},
      inverseJoinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")})
  List<UserEntity> users;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 2019-03-02
    • 2018-12-02
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    相关资源
    最近更新 更多