java - why does jpa query the same column multiple times when using a one to many relationship? -
i have jpa code persists user, has set of permissions. table in sql 2 columns, user_id , permission. when try read user, generated sql looks off. specifically, 2 columns selected multiple times. here relevant code...
entity classes...
@entity @table(name="users") public class user implements storable{ @onetomany(cascade=cascadetype.all) @joincolumn(name="user_id",referencedcolumnname="user_id") private set<permission> permissions; } @entity @table(name="permissions") public class permission implements storable{ @embeddedid permissionpk id; @mapsid("userid") @manytoone @joincolumn(name="user_id") user user; } @embeddable class permissionpk implements serializable{ @column(name="user_id") int userid; @column(name="permission") string type;
}
code queries...
user u = em.find(user.class, 262);
here query generated finding permissions...
select permission0_.user_id user2_8_1_, permission0_.permission permissi1_3_1_, permission0_.user_id user2_3_1_, permission0_.permission permissi1_3_0_, permission0_.user_id user2_3_0_ permissions permission0_ permission0_.user_id=?
i cannot figure out life of me why user_id column selected 3 times , permission column twice. ends being ok me since store permissions in set , duplicates removed. know why can address future problems might not storing in set
Comments
Post a Comment