Estou tentando usar este código mas o segundo relacionamento ele não cadastra:
Código:Session session = factory.getSession();
Transaction tx = session.beginTransaction();
Modelo modelo = new Modelo();
modelo.setOleo(Double.parseDouble( getSpinOleoGerar().getValue().toString()));
modelo.setMarca(marca);
modelo.setNome(getTxtNomeGerar().getText());
modelo.setArCondicionado(true);
modelo.setDirecaoHidraulica(false);
modelo.setPartirAno(doAno);
modelo.setAteAno(ateAno);
modelo.setCilindradas(getCmbCilindradasGerar().getSelectedItem().toString());
modelo.setValvulas(getCmbCilindradasGerar().getSelectedItem().toString());
modelo.setMotor(motor);
session.save(modelo);
for (int i = 0; i < getModelDificuldadeGerar().getSize(); i ++) {
ModeloCategoria dificuldade = (ModeloCategoria) getModelDificuldadeGerar().get(i);
ModeloCategoriaPK pk =dificuldade.getChaveComposta();
pk.setModelo(modelo);
session.save(dificuldade);
}
session.flush();
modelo = new Modelo();
modelo.setOleo(Double.parseDouble( getSpinOleoGerar().getValue().toString()));
modelo.setMarca(marca);
modelo.setNome(getTxtNomeGerar().getText());
modelo.setArCondicionado(false);
modelo.setDirecaoHidraulica(false);
modelo.setPartirAno(doAno);
modelo.setAteAno(ateAno);
modelo.setCilindradas(getCmbCilindradasGerar().getSelectedItem().toString());
modelo.setValvulas(getCmbCilindradasGerar().getSelectedItem().toString());
modelo.setMotor(motor);
session.save(modelo);
for (int i = 0; i < getModelDificuldadeGerar2().getSize(); i ++) {
ModeloCategoria dificuldade = (ModeloCategoria) getModelDificuldadeGerar2().get(i);
ModeloCategoriaPK pk =dificuldade.getChaveComposta();
pk.setModelo(modelo);
session.save(dificuldade);
}
tx.commit();
package com.experience.softwares.sgsc.dao;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.experience.softwares.sgsc.HibernateSessionFactory;
public class Dao<T> {
public final Session session;
private final Class classe;
Dao(Session session, Class classe) {
this.session = session;
this.classe = classe;
}
protected Session getSession() {
return session;
}
@SuppressWarnings("unchecked")
public Integer adicionaPegaNumero(T u) {
return (Integer) this.session.save(u);
}
public void adiciona(T u) {
session.beginTransaction();
this.session.save(u);
session.flush();
session.beginTransaction().commit();
}
public void AdicionaOuAtualiza(T u) {
HibernateSessionFactory.doBeginTransaction();
this.session.saveOrUpdate( u);
HibernateSessionFactory.doCommit();
}
public void remove(T u) {
session.delete(u);
}
@SuppressWarnings("unchecked")
public T pegarUltimo(){
Criteria criteria = session.createCriteria( this.classe );
criteria.addOrder( Order.desc( "cod" ) );
return ( T ) criteria.uniqueResult();
}
@SuppressWarnings("unchecked")
public T procura(Integer id) {
return (T) session.get(this.classe, id);
}
public void atualiza(T u) {
HibernateSessionFactory.doBeginTransaction();
session.update(u);
HibernateSessionFactory.doCommit();
}
@SuppressWarnings("unchecked")
public List<T> listaTudo() {
List<T> list = new ArrayList<T>();
//try{
list = this.session.createCriteria(this.classe).addOrder( Order.asc("cod") ).list();
// }catch(ObjectNotFoundException e){
// System.out.println("Raphael");
//}
return list;
}
@SuppressWarnings("unchecked")
public List<T> listaTudoOrderBy(String Campo) {
return this.session.createCriteria(this.classe).addOrder( Order.asc(Campo) ).list();
}
@SuppressWarnings("unchecked")
public T search(String login, String senha) {
return (T) session.createCriteria(this.classe).add(
Restrictions.eq("login", login)).add(
Restrictions.eq("senha", senha)).uniqueResult();
}
@SuppressWarnings("unchecked")
public List<T> procuraCampos(String campo, String valor) {
String hql = "from "+ this.classe.getSimpleName() +" where "+campo+" LIKE '%" + valor+ "%'";
Query query = session.createQuery(hql);
return query.list();
}
@SuppressWarnings("unchecked")
public List<T> listaAniversariantes(Date dia) {
String DiaInicio,MesInicio,DiaTermino,MesTermino;
DiaInicio = new SimpleDateFormat("dd").format(dia.getTime());
DiaTermino = new SimpleDateFormat("dd").format(dia.getTime());
MesInicio = new SimpleDateFormat("MM").format(dia.getTime());
MesTermino = new SimpleDateFormat("MM").format(dia.getTime());
String SQL = "Select * FROM "+ this.classe.getSimpleName() +" Where (Extract(Month From DtaNascimento) + (Extract(Day From DtaNascimento) / 100.00)) between ("+MesInicio+" + ("+DiaInicio+" / 100.00)) and ("+MesTermino+" + ("+DiaTermino+" / 100.0))";
return this.session.createSQLQuery(SQL).addEntity(this.classe).list();
}
public int excluirRegistro(String cod){
String hql = "delete from "+ this.classe.getSimpleName() +" where cod = :cod";
Query query = session.createQuery(hql).setString("cod", cod);
int row = query.executeUpdate();
return row;
}
}
