Pessoal tenho duas tabelas relacionada entre si sao elas : aluno e disciplina o relacionamento e muitos para muitos o que faz surgi a terceira tabela aluno_disciplina, como voces vere os scripts:
aluno;
[code]public class Aluno {
private Integer idaluno;
private String nome;
private String endereco;
private String sexo;
private String nomepai;
private String nomemae;
private String resposavel;
private String nacionalidade;
private String naturalidade;
private String uf;
private String municipio;
private Escola escola;
private String datanascimento;
private Integer telefone;
private String resistro;
private Turma turma;
private Disciplina disciplina;
private List<Disciplina> disciplinas;
//gettes / setteres
[/code]
Aluno.hbm.xml
[code]<?xml version="1.0"?>
<property name="nome" type="string">
<column name="nome" length="45" />
</property>
<property name="endereco" type="string">
<column name="endereco" length="45" />
</property>
<property name="sexo" type="string">
<column name="sexo" length="1" />
</property>
<property name="nomepai" type="string">
<column name="nomepai" length="45" />
</property>
<property name="nomemae" type="string">
<column name="nomemae" length="45" />
</property>
<property name="resposavel" type="string">
<column name="resposavel" length="45" />
</property>
<property name="nacionalidade" type="string">
<column name="nacionalidade" length="45" />
</property>
<property name="naturalidade" type="string">
<column name="naturalidade" length="45" />
</property>
<property name="uf" type="string">
<column name="uf" length="2" />
</property>
<property name="municipio" type="string">
<column name="municipio" length="45" />
</property>
<property name="datanascimento" type="string">
<column name="datanascimento" length="8" />
</property>
<property name="telefone" type="int">
<column name="telefone" length="10" />
</property>
<property name="resistro" type="string">
<column name="resistro" length="20" />
</property>
<set name="disciplinas" inverse="false" table="aluno_disciplina">
<key>
<column name="idaluno" not-null="true" />
</key>
<many-to-many entity-name="Bean.Disciplina">
<column name="iddisciplina" not-null="true" />
</many-to-many>
</set>
</class>
[/code]
discipina:
public class Disciplina {
private Integer iddisciplina;
private String nome;
private String descricao;
private List<Aluno> alunos;
//getteres / setteres
Disciplina.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 06/10/2011 07:17:14 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
<class name="Bean.Disciplina" table="disciplina" catalog="sge">
<id name="iddisciplina" type="java.lang.Integer">
<column name="iddisciplina"></column>
<generator class="native">
</generator>
</id>
<property name="nome" type="string">
<column name="nome" length="40"></column>
</property>
<property name="descricao" type="string">
<column name="descricao" length="50"></column>
</property>
<set name="alunos" inverse="true" table="aluno_disciplina">
<key>
<column name="iddisciplina" not-null="true" />
</key>
<many-to-many entity-name="Bean.Aluno">
<column name="idaluno" not-null="true" />
</many-to-many>
</set>
</class>
</hibernate-mapping>[/code]
Na mina pagina jsp para cadastro de aluno quero um o select ja venha carregado com as disciplinas to usando o jsl assim:
[code]<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastro Aluno</title>
</head>
<body>
<div id="container">
<div id="top">
<h1>Cadastror Aluno</h1>
<h3>${mensagem}</h3>
</div>
<div id="leftSide">
<fieldset>
<legend>Aluno</legend>
<form action="Controlador" method="post" class="form"/>
<input type="hidden" name="cmd" id="cmd" value="cadastrarAluno"/>
<label for="nome"> Nome</label>
<div class="div_texbox">
<input type="text" name="nome" id="nome" value="${aluno.nome }"/>
</div>
<label for="endereco">Endereco</label>
<div class="div_texbox">
<input type="text" name="endereco" id="endereco" value="${aluno.endereco}"/>
</div>
<label for="municipio">Municipio</label>
<div class="div_texbox">
<input type="text" name="municipio" id="municipio" value="${aluno.municipio }"/>
</div>
<label for="naturalidade">Naturalidade</label>
<div class="div_texbox">
<input type="text" name="naturalidade" id="naturalidade" value="${aluno.naturalidade}"/>
</div>
<label for="nacionalidade">Nacionalidade</label>
<div class="div_texbox">
<select>
<option name="nacionalidade" selected="selected">Brasileira</option>
<option name="nacionalidade">Estrangeira</option>
</select>
</div>
<label for="nomemae">Nomemae</label>
<div class="div_texbox">
<input type="text" name="nomemae" id="nomemae" value="${aluno.nomemae}"/>
</div>
<label for="nomepai">Nome Pai</label>
<div class="div_texbox">
<input type="text" name="nomepai" id="nomepai" value="${aluno.nomepai}"/>
</div>
<label for="resposavel">Resposavel</label>
<div class="div_texbox">
<input type="text" name="resposavel" id="resposavel" value="${aluno.resposavel}"/>
</div>
<label for="telefone">Telefone</label>
<div class="div_texbox">
<input type="text" name="telefone" id="telefone" value="${aluno.telefone}"/>
</div>
<label for="resistro">Registro Nº</label>
<div class="div_texbox">
<input type="text" name="resistro" id="resistro" value="${aluno.resistro}"/>
</div>
<label for="datanascimento">Data.Nasc</label>
<div class="div_texbox">
<input type="text" name="datanascimento" id="datanascimento" value="${aluno.datanascimento}"/>
</div>
<label for="iddisciplina">Disciplina</label>
<div class="div_texbox">
<select name="iddisciplina">
<c:forEach var="aluno_disciplina" items="${disciplinas}">
<option value="${aluno_disciplina.iddisciplina.disciplina}" ${aluno_disciplina.iddisciplina.disciplina eq disciplina.aluno_disciplina.iddisciplina.disciplina ? "SELECTED" : ""}>${disciplina.nome}</option>
</c:forEach>
</select>
</div>
<label for="sexo">Sexo</label>
<div class="div_texbox">
<option>M</option>
<input type="radio" name="sexo" id="sexo" value="${aluno.sexo}" />
<option>F</option>
<input type="radio" name="sexo" id="sexo" value="${aluno.sexo}"/>
</div>
<label for="uf">Uf</label>
<div class="div_texbox">
<input type="text" name="uf" id="uf" value="${aluno.uf}"/>
</div>
<div class="button_div">
<input type="submit" name="cadastrar" id="cadastrar" value="Cadastrar" class="botao"/>
</div>
</form>
</fieldset>
</div>
</div>
</body>
</html>
na hora chamo a minha pagina acontece o seguite:
alunos2_.nome as nome0_0_,
alunos2_.endereco as endereco0_0_,
alunos2_.sexo as sexo0_0_,
alunos2_.nomepai as nomepai0_0_,
alunos2_.nomemae as nomemae0_0_,
alunos2_.resposavel as resposavel0_0_,
alunos2_.nacionalidade as naciona10_0_0_,
alunos2_.naturalidade as natural11_0_0_,
alunos2_.uf as uf0_0_,
alunos2_.municipio as municipio0_0_,
alunos2_.datanascimento as datanas14_0_0_,
alunos2_.telefone as telefone0_0_,
alunos2_.resistro as resistro0_0_,
O erro e esse
[code]org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of Bean.Aluno.disciplinas
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3571)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:133)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
[/code]
Alguem poderia me ajudar???