PROBLEMAS mapeamento de uma composite-id

3 respostas
R

Pessoal, seguinte

estou tendo problemas para fazer o mapeamento de uma composite-id...

Será que alguem pode me ajudar, por favor

MAPEAMENTO:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 16/04/2010 17:11:23 by Hibernate Tools 3.2.4.GA -->

<hibernate-mapping>
    <class name="com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO" table="AGD_TAB_VISITA_REC_MAT">
        <composite-id>
        	<key-property name="agdTabMaterialRecurso.cdMaterialRecurso" column="CD_MATERIAL_RECURSO" />
        	<key-property name="agdTabLocalVisita.cdLocalVisita" column="CD_LOCAL_VISITA" />
        </composite-id>
    </class>
</hibernate-mapping>
CLASSE:
public class AgdVisitaRecursoMaterialTO implements TransferObject {

	private static final long serialVersionUID = 1L;

	private AgdMaterialRecursoTO agdTabMaterialRecurso;  
	private AgdLocalVisitaTO agdTabLocalVisita;
	
	public AgdVisitaRecursoMaterialTO(AgdLocalVisitaTO agdTabLocalVisita,
			AgdMaterialRecursoTO agdTabMaterialRecurso) {
		super();
		this.agdTabLocalVisita = agdTabLocalVisita;
		this.agdTabMaterialRecurso = agdTabMaterialRecurso;
	}
	
	public AgdVisitaRecursoMaterialTO() {
		
	}

	public AgdMaterialRecursoTO getAgdTabMaterialRecurso() {
		return agdTabMaterialRecurso;
	}

	public void setAgdTabMaterialRecurso(AgdMaterialRecursoTO agdTabMaterialRecurso) {
		this.agdTabMaterialRecurso = agdTabMaterialRecurso;
	}

	public AgdLocalVisitaTO getAgdTabLocalVisita() {
		return agdTabLocalVisita;
	}

	public void setAgdTabLocalVisita(AgdLocalVisitaTO agdTabLocalVisita) {
		this.agdTabLocalVisita = agdTabLocalVisita;
	}

	

}
RETORNA O SEGUINTE ERRO:
Throwable occurred: org.hibernate.exception.SQLGrammarException: could not insert: [com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)

TA COMPLICADO

Desde ja
Agradeço...vlw

3 Respostas

Rafael_Carneiro

Poste a excecao completa.

R

OLHA SÓ CARA,

INFO: Mapping class: com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO -> AGD_TAB_VISITA_REC_MAT
br.com.sabesp.common.util.HibernateUtil - Initial SessionFactory creation failed.
Exception in thread "main" java.lang.ExceptionInInitializerError
	at br.com.sabesp.common.util.HibernateUtil.<clinit>(HibernateUtil.java:49)
	at java.lang.J9VMInternals.initializeImpl(Native Method)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
	at br.com.sabesp.common.dao.AbstractDAO.getVO(AbstractDAO.java:270)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.getLocalVisita(TipoAgendamentoDAOImpl.java:306)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.insertRecMatVisita(TipoAgendamentoDAOImpl.java:793)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.main(TipoAgendamentoDAOImpl.java:739)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource AgdTabVisitaRecursoMaterial.hbm.xml
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:575)
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1593)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1561)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1540)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1514)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
	at br.com.sabesp.common.util.HibernateUtil.<clinit>(HibernateUtil.java:44)
	... 6 more
Caused by: org.hibernate.PropertyNotFoundException: field [agdTabMaterialRecurso.cdMaterialRecurso] not found on com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO
	at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:122)
	at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:114)
	at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:137)
	at org.hibernate.util.ReflectHelper.getter(ReflectHelper.java:83)
	at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:71)
	at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:279)
	at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2171)
	at org.hibernate.cfg.HbmBinder.bindComponent(HbmBinder.java:1900)
	at org.hibernate.cfg.HbmBinder.bindCompositeId(HbmBinder.java:1723)
	at org.hibernate.cfg.HbmBinder.bindCompositeId(HbmBinder.java:424)
	at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:338)
	at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
	at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
	at org.hibernate.cfg.Configuration.add(Configuration.java:675)
	at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:510)
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:572)
	... 13 more
R

OLHA SÓ CARA,

INFO: Mapping class: com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO -> AGD_TAB_VISITA_REC_MAT br.com.sabesp.common.util.HibernateUtil - Initial SessionFactory creation failed. Exception in thread "main" java.lang.ExceptionInInitializerError at br.com.sabesp.common.util.HibernateUtil.<clinit>(HibernateUtil.java:49) at java.lang.J9VMInternals.initializeImpl(Native Method) at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) at br.com.sabesp.common.dao.AbstractDAO.getVO(AbstractDAO.java:270) at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.getLocalVisita(TipoAgendamentoDAOImpl.java:306) at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.insertRecMatVisita(TipoAgendamentoDAOImpl.java:793) at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.main(TipoAgendamentoDAOImpl.java:739) Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource AgdTabVisitaRecursoMaterial.hbm.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:575) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1593) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1561) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1540) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1514) at org.hibernate.cfg.Configuration.configure(Configuration.java:1434) at org.hibernate.cfg.Configuration.configure(Configuration.java:1420) at br.com.sabesp.common.util.HibernateUtil.<clinit>(HibernateUtil.java:44) ... 6 more Caused by: org.hibernate.PropertyNotFoundException: field [agdTabMaterialRecurso.cdMaterialRecurso] not found on com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:122) at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:114) at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:137) at org.hibernate.util.ReflectHelper.getter(ReflectHelper.java:83) at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:71) at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:279) at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2171) at org.hibernate.cfg.HbmBinder.bindComponent(HbmBinder.java:1900) at org.hibernate.cfg.HbmBinder.bindCompositeId(HbmBinder.java:1723) at org.hibernate.cfg.HbmBinder.bindCompositeId(HbmBinder.java:424) at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:338) at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144) at org.hibernate.cfg.Configuration.add(Configuration.java:675) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:510) at org.hibernate.cfg.Configuration.addResource(Configuration.java:572) ... 13 more

ALTEREI O MAPEAMENTO NO XML DA FORMA QUE ACHO QUE SEJA A CORRETA

<hibernate-mapping> <class name="com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO" table="AGD_TAB_VISITA_REC_MAT"> <composite-id> <key-property name="agdTabMaterialRecurso" column="CD_MATERIAL_RECURSO" /> <key-property name="agdTabLocalVisita" column="CD_LOCAL_VISITA" /> </composite-id> </class> </hibernate-mapping>

excecao completa!!!

Hibernate: insert into AGD_TAB_VISITA_REC_MAT (CD_MATERIAL_RECURSO, CD_LOCAL_VISITA) values (?, ?)
29/09/2010 14:44:19 org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 932, SQLState: 42000
29/09/2010 14:44:19 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: ORA-00932: inconsistent datatypes: expected NUMBER got BINARY

29/09/2010 14:44:19 org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
Throwable occurred: org.hibernate.exception.SQLGrammarException: could not insert: [com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2272)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2665)
	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
	at br.com.sabesp.common.dao.AbstractDAO.insertTO(AbstractDAO.java:54)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.insertRecMatVisita(TipoAgendamentoDAOImpl.java:807)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.main(TipoAgendamentoDAOImpl.java:739)
Caused by: java.sql.SQLException: ORA-00932: inconsistent datatypes: expected NUMBER got BINARY

	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
	at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
	at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
	at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
	at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
	at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
	at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
	at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)
	... 11 more
br.com.sabesp.common.exception.DAOException: could not insert: [com.sabesp.agendamento.recursos.core.to.AgdVisitaRecursoMaterialTO]
	at br.com.sabesp.common.dao.AbstractDAO.catchDAOException(AbstractDAO.java:296)
	at br.com.sabesp.common.dao.AbstractDAO.insertTO(AbstractDAO.java:58)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.insertRecMatVisita(TipoAgendamentoDAOImpl.java:807)
	at com.sabesp.agendamento.tipo.integracao.dao.TipoAgendamentoDAOImpl.main(TipoAgendamentoDAOImpl.java:739)

CREIO QUE SEJA ALGUM PROBLEMA NA LINHA QUE DIZ…
ORA-00932: inconsistent datatypes: expected NUMBER got BINARY

Criado 29 de setembro de 2010
Ultima resposta 29 de set. de 2010
Respostas 3
Participantes 2