Gente,
Não entendi alguns conceitos de chave estrangeira no Hibernate. Vejam só minhas tabelas filme, gênero e categoria. Um filme deve conter um gênero e uma categoria. Eu já tinha criado as tabelas no (MySQL5) dessa forma:(filme)
id : int | auto incr | PK
nome: varchar
genero: int
categoria int
índice fk_filme1 -> campo genero aponta para “id” da tabela genero
índice fk_filme2 -> campo categoria aponta para “id” da tabela categoria
[code](genero)
id : int | auto incr | PK
nome: varchar
(categoria)
id : int | auto incr | PK
nome: varchar
public class Filme {
private String nome;
private Genero genero;
private Categoria categoria;
private int id;
// construtor, getters e setters
}
<hibernate-mapping>
<class name="pojo.Filme" table="filme">
<id name="id" column="id" type="int">
<generator class="native" />
</id>
<property name="nome" column="nome" type="string" unique="true" />
<many-to-one
name="genero"
column="genero"
class="pojo.Genero"
not-null="true"
foreign-key="FK_filme_1"/>
<many-to-one
name="categoria"
column="categoria_filme"
class="pojo.Categoria"
not-null="true"
foreign-key="FK_filme_2"/>
</class>
</hibernate-mapping>
Outra coisa, costumo em minhas tabelas sempre criar um pk “id” inteiro e auto incrementável. As tabelas geradas da relação n:n também devem ter esse campo como única chave estrangeira?
Mais uma outra coisa, como se chamam as classes que contém apenas os atributos e os getters e os setters? Tipo Filme... parece que pojo, to, vo???
Abraço, pessoal