I have a hibernate application and I am having a problem with a map. I have
a
class, Transaction, with a subclass PieceTransaction, and I want it to have
something like the following xml 1). I have the java source code below, 2).
But I get an exception when I run the ant job to create the xml from the
comments, see 3). Is there a problem with the java code, or did I do
something
else wrong? If you need any more information, please let me know.
Thanks,
Lance
1) ===================================================================
<map table="facade_line" lazy="false" cascade="all,delete-orphan"
name="facadeLines">
<key foreign-key="fk_facade_transaction" column="id_transaction"/>
<composite-map-key class="com.parvia.account.FacadeKey">
<key-property name="edificeName" column="edifice_name"
type="string" length="20"/>
<key-property name="facadeName" column="facade_name" type="string"
length="40"/>
<key-property name="bagNumber" column="bag_number" type="int"/>
</composite-map-key>
<element type="int" column="count"/>
</map>
2) ===================================================================
/**
* @hibernate.map
* table="facade_line"
* lazy="false"
* cascade="all,delete-orphan"
* @hibernate.key
* column="id_transaction"
* foreign-key="fk_facade_transaction"
* @hibernate.composite-map-key
* class="com.parvia.account.FacadeKey"
* @hibernate.key-property
* type="string"
* column="edifice_name"
* length="20"
* @hibernate.key-property
* type="string"
* column="facade_name"
* length="40"
* @hibernate.key-property
* type="int"
* column="bag_number"
* @hibernate.element
* column="count"
* type="int"
*/
public Map getFacadeLines() {
return facadeLines;
}
public void setFacadeLines(Map facadeLines) {
this.facadeLines = facadeLines;
}
3) ===================================================================
C:\web\sql>call ant hibernatedoclet
Buildfile: build.xml
hibernatedoclet:
[xdoclet] Running org.xdoclet.plugin.hibernate.HibernateMappingPlugin
[xdoclet] * Generate mapping for 'Transaction' entity
[xdoclet] Feb 13, 2006 4:22:53 PM
org.apache.commons.jelly.expression.jexl.JexlExpression evaluate
[xdoclet] WARNING: Caught exception evaluating:
[EMAIL PROTECTED] Reason:
java.lang.RuntimeException: more than one top leve
l property deined in class PieceTransaction for property facadeLines
[xdoclet] java.lang.RuntimeException: more than one top level property
deined in class PieceTransaction for property facadeLines
[xdoclet] at org.generama.Plugin.assertTrue(Plugin.java:158)
[xdoclet] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
[xdoclet] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
[xdoclet] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
[xdoclet] at java.lang.reflect.Method.invoke(Method.java:324)
[xdoclet] at
org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invok
e(UberspectImpl.java:268)
[xdoclet] at
org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:61)
[xdoclet] at
org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:68)
[xdoclet] at
org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:50)
[xdoclet] at
org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:86)
[xdoclet] at
org.apache.commons.jelly.expression.jexl.JexlExpression.evaluate(JexlExpress
ion.java:69)
. . .