java - Hibernate join columns not by a primary key reference -


i have user , role classes manytomany relationship. when i'm adding role object list roles in user object 'user_roles' table columns 'username' , 'role_name' gets populated user , role objects primary keys' ids. wanted know whether possible reference not primary keys(ids) , username , role.name in columns instead?

@entity @table(name = "users") @secondarytable(name = "user_info", pkjoincolumns = { @primarykeyjoincolumn(name = "info_id", referencedcolumnname = "user_id") }) public class user {  @id @column(name = "user_id") @generatedvalue(strategy = generationtype.identity) private int id;  @column(name = "username") private string username;  @column(name = "password") private string password;  @manytomany  @jointable(name="user_roles",             joincolumns= {@joincolumn(name="username"/*, referencedcolumnname="username"*/)},             inversejoincolumns= {@joincolumn( name="role_name"/*, referencedcolumnname="role_name"*/)} ) private list<role> roles;  @entity @table(name = "roles") public class role {  @id @column(name = "role_id") @generatedvalue(strategy = generationtype.identity) private int id;  @column(name = "role_name") private string name;  @manytomany private list<user> users; 

also if remove comments around referencedcolumnname error when trying fetch users database. haven't added data database when querying empty database i'm getting error:

caused by: org.hibernate.hibernateexception: found shared references collection: com.recipee.model.user.roles

the reason i'm using such database schema because i'm trying use tomcat realm authentication need username , role_name in 1 database table.


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -