I have a user table(and entity)
JavaScript
x
create table users(
id number(9) not null,
alias varchar2(200 char),
name_en varchar2(200 char),
state varchar2(1) not null
);
and user groups
JavaScript
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)
);
group users are stored in bind table
JavaScript
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)
);
I want to have in my group entity list of userEntity(without bind entity). Any ideas? Of course, I can use @Query annotation, but I have other entities who mapped with group and they will automatic get group entity. Can I override automatical methods?
Advertisement
Answer
You can use @JoinTable
and define column mapping with join table in UserGroup
Enitity
JavaScript
@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;