Org.hibernate.InvalidMappingException... omfg!

1 resposta
E

Boa noite pessoal,
estou desenvolvendo uma pequena aplicação com hibernate e estou tentando utilizar um COLUMN TRANSFORMER para tratar o valor de uma determinada coluna, porém ao adicionar os atributos necessários no mapeamento da classe que ocorre a bendita org.hibernate.InvalidMappingException!!!

[img]http://3.bp.blogspot.com/_molLkKTqp3E/S9zccsEGleI/AAAAAAAABjk/eCAGCzhsTv8/s1600/fuuuuu.jpg[/img]

Segue o xml do mapeamento da classe

<?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">

<hibernate-mapping>

	<class name="br.com.manager.model.entity.Debito" table="MNGR_DEBITO"
		schema="MNGR">

		<id name="id" type="long">
			<column name="DEB_ID" precision="22" scale="0" />
			<generator class="sequence">
				<param name="sequence">SEQ_DEBITO</param>
			</generator>
		</id>

		<property name="valor" type="double">
			<column name="DEB_VALOR" precision="19" scale="2" not-null="true" />
		</property>

		<properties name="uniqueDebito" unique="true" update="false">
			<property name="mes" type="integer">
				<column name="DEB_MES" precision="2" scale="0" not-null="true"
					read="DEB_MES" write="?" />
			</property>

			<property name="ano" type="integer">
				<column name="DEB_ANO" precision="4" scale="0" not-null="true" />
			</property>

			<many-to-one name="tipo">
				<column name="TP_DEB_ID" precision="2" scale="0" not-null="true" />
			</many-to-one>
		</properties>

	</class>

</hibernate-mapping>

Stacktrace

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource hbm/Debito-hbm.xml
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:616)
	at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:957)
	at org.hibernate.cfg.AnnotationConfiguration.parseMappingElement(AnnotationConfiguration.java:629)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1047)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1035)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1476)
	at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1017)
	at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:64)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
	at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1011)
	at persistence.dao.util.HibernateUtil.<clinit>(HibernateUtil.java:20)
	... 1 more
Caused by: org.hibernate.MappingException: invalid mapping
	at org.hibernate.cfg.AnnotationConfiguration.addInputStream(AnnotationConfiguration.java:777)
	at org.hibernate.cfg.AnnotationConfiguration.addInputStream(AnnotationConfiguration.java:64)
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:613)
	... 16 more
Caused by: org.xml.sax.SAXParseException: Attribute "read" must be declared for element type "column".
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate(XMLDTDValidator.java:1275)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1940)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:785)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
	at org.dom4j.io.SAXReader.read(SAXReader.java:465)
	at org.hibernate.cfg.AnnotationConfiguration.addInputStream(AnnotationConfiguration.java:773)
	... 18 more

Basta retirar os atributos "read" e "write" da tag column da propriedade "mes" q a aplicação funciona normalmente.
Somebody help!! []'s.

1 Resposta

R

Não entendi. Por que você precisa dos atributos “read” e “write”?

Criado 14 de março de 2011
Ultima resposta 15 de mar. de 2011
Respostas 1
Participantes 2