Bom dia galera.
Pro favor… me ajudem… ja tentei de tudo.
Estou tentando fazer um relacionamento N:N no hibernate e nao estou conseguindo… Esta acontecendo o seguinte erro:
10:42:30,866 DEBUG SQL:324 - select roles0_.fk_users as fk1_1_, roles0_.pk_roles as pk2_1_, roles1_.pk_roles as pk1_0_, roles1_.role as role2_0_ from roles_x_users roles0_ inner join public.roles roles1_ on roles0_.pk_roles=roles1_.pk_roles where roles0_.fk_users=?
10:42:30,866 DEBUG AbstractBatcher:378 - preparing statement
com.mchange.v2.c3p0.impl.NewPooledConnection@40afb9 invalidated by Exception: org.postgresql.util.PSQLException: ERROR: column roles0_.pk_roles does not exist
Abaixo segue explicação do que eu fiz.
Eu tenho 3 tabelas: users, roles, users_x_roles
Duas classes: Users e Roles
Sendo que tentei mapear da seguinte forma:
public class Users implements java.io.Serializable {
// Fields
private Integer pkUsers;
private String name;
private String login;
private String password;
private Set roles = new HashSet(0);
//geters and seters
…
}
public class Roles implements java.io.Serializable {
// Fields
private Integer pkRoles;
private String role;
private Set users = new HashSet(0);
//geters and seters
…
}
<hibernate-mapping>
<class name="br.com.icontrol.model.persistence.to.Users" table="users" schema="public">
<id name="pkUsers" type="integer">
<column name="pk_users" precision="8" scale="0" />
<generator class="increment" />
</id>
<property name="name" type="string">
<column name="name" length="100" not-null="true" />
</property>
<property name="login" type="string">
<column name="login" length="15" not-null="true" />
</property>
<property name="password" type="string">
<column name="password" length="32" not-null="true" />
</property>
<set name="roles" table="roles_x_users" inverse="true">
<key>
<column name="fk_users" precision="8" scale="0" not-null="true" />
</key>
<many-to-many class="br.com.icontrol.model.persistence.to.Roles" column="pk_roles" />
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="br.com.icontrol.model.persistence.to.Roles" table="roles" schema="public">
<id name="pkRoles" type="integer">
<column name="pk_roles" precision="8" scale="0" />
<generator class="increment" />
</id>
<property name="role" type="string">
<column name="role" length="15" not-null="true" />
</property>
<set name="users" table="roles_x_users" inverse="true">
<key>
<column name="fk_roles" precision="8" scale="0" not-null="true" />
</key>
<many-to-many class="br.com.icontrol.model.persistence.to.Users" column="pk_users"/>
</set>
</class>
</hibernate-mapping>