Hi,
I have a ManyToMany relationship between two classes, annotated like so
at the owning end:
@ManyToMany
@JoinTable(name = "user_role", joinColumns =
{@JoinColumn(name = "username", referencedColumnName = "username")},
inverseJoinColumns = {@JoinColumn(name = "role_name",
referencedColumnName = "name")})
private List<Role> roles = new ArrayList<Role>();
At the other end:
@ManyToMany(mappedBy="roles")
private List<AppUser> appUsers = new ArrayList<AppUser>();
This produces the following join table (PostgreSQL):
CREATE TABLE user_role
(
role_name varchar(255) NOT NULL,
username varchar(255) NOT NULL,
CONSTRAINT user_role_pkey PRIMARY KEY (role_name, username),
CONSTRAINT fk_user_role_role_name FOREIGN KEY (role_name)
REFERENCES "role" (name) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_user_role_username FOREIGN KEY (username)
REFERENCES app_user (username) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT user_role_username_key UNIQUE (username)
)
The
user_role_username_key is unwanted. How can I prevent it
from being generated?
Thanks!
Greg