eu tenho o seguinte mapeamento para minha tabela de Unidade..
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.vikin.conectaescola.bean">
<class name="Unidade" table="unidade" >
<id name="id" column="id" type="java.lang.Long">
<generator class="sequence">
<param name="sequence">seq_unidade</param>
</generator>
</id>
<property name="matriz" column="matriz" type="java.lang.Integer" not-null="true"/>
<property name="nome" column="nome" type="java.lang.String" not-null="true" >
<many-to-one name="coordenador" column="coordenador_id" class="Funcionario" />
<many-to-one name="instituicao" column="instituicao_id" class="Instituicao" not-null="true"/>
</class>
</hibernate-mapping>
o problema é o sequinte:
1.quando tento alterar por exemplo apenas o campo nome o hibernate monta uma query com todos os campos, ou seja, eu to passando apenas o nome da unidade no atributo nome! ai o update não funciona...
public void update(Object obj) throws HibernateException{
Transaction tx = null;
Session session = null;
try{
session = SessionFactory.currentSession();
tx = session.beginTransaction();
session.update(obj);
tx.commit();
}catch (HibernateException e){
tx.rollback();
}finally{
SessionFactory.closeSession();
}
}
2. o mesmo problema acontece quando quero deletar um registro. para realizar essa operação eu tenho que primeiro setar todos os atributos para que o delete seja realizado.
public void delete(Object obj) throws HibernateException {
Session session = null;
Transaction tx = null;
try{
session = SessionFactory.currentSession();
tx = session.beginTransaction();
session.delete(obj);
tx.commit();
}catch (HibernateException e){
tx.rollback();
}finally{
SessionFactory.closeSession();
}
}
qual a melhor maneira para realizar essa duas operações??
