Saudações,
Sou recente em Java. Estou trabalhando com a tecnologia “Hibernate 3” e estou tendo problemas na hora de executar uma (ou várias) inserções numa tabela NxN, segue o esquema abaixo:
Author (pk, Description)
Work (pk, Description)
Author_Work (pk, fkAuthor, fkWork)
OBS: É necessário que não exista a junção dos valores das foreign keys em uma primary keys na tabela Author_Work!
O Problema: Antes de adicionar as tags “set” em ambos os mapeamentos, tudo estava perfeito. Depois de adicionar estas tags nos mapeamentos e os métodos getters e setters nas classes Author.java e Sector.java, estou tendo problemas em tempo de execução. Segundo o console do java, estou tendo problemas com a chave primária da tabela “Author_Work”.
O mapeamento XML que utilizo para classe Author é o seguinte:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.proj">
<class name="Author" table="Author">
<id name="pk" column="pk" type="int" unsaved-value="0">
<generator class="increment"/>
</id>
<property name="Description" column="Description" type="string"/>
<set name="Sectors" table="Author_Work">
<key column="fkAuthor"/>
<many-to-many class="Sector" column="fkSector"/>
</set>
</class>
</hibernate-mapping>
O mapeamento XML que utilizo para classe Sector é o seguinte:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.proj">
<class name="Sector" table="Sector">
<id name="pk" column="pk" type="int" unsaved-value="0">
<generator class="increment"/>
</id>
<property name="Description" column="Description" type="string"/>
<set name="Authors" table="Author_Work">
<key column="fkSector"/>
<many-to-many class="Author" column="fkAuthor"/>
</set>
</class>
</hibernate-mapping>
Vale lembrar que estou tendo sucesso na hora de executar os códigos se eu não utilizar as tags “set” no mapeamento. Não acho que seria uma boa prática de programação utilizar um mapeamento exclusivo para Author_Work, Sujestões?