Hi!
I'm using Hibernate Tools 3.1.0.beta5
If I use the tools as plug-in for eclipse, it works perfect. All hashCode and equals methods are generated automatically. But if I use Ant task to do the same, no hashCode or equals method are generated. If I use meta attibutes in mapping, then method is implemented, but I have too many composite id to generate, so I'd like hbm2java generate them for me. As it suppose to do.
hibernate.cfg.xml
and mappings are the same
Ant build script:
Code:
<path id="library.hibernatetools.classpath">
<fileset dir="C:/dev/hibernate/hibernatetools-3.1.0.beta5/lib">
<include name="*.jar"/>
</fileset>
</path>
<taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="library.hibernatetools.classpath"/>
<target name="hbm2java">
<hibernatetool destdir="${module.jstl.basedir}/src">
<classpath>
<path location="${module.jstl.basedir}/src"/>
</classpath>
<configuration configurationfile="${module.jstl.basedir}/src/hibernate.cfg.xml"/>
<hbm2java/>
</hibernatetool>
</target>
Mapping:
Code:
<?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 May 22, 2006 3:18:01 PM by Hibernate Tools 3.1.0.beta5 -->
<hibernate-mapping>
<class name="model.ResponseNote" table="ECB_NOTES_RESP" schema="dbo" catalog="recon_dev">
<composite-id name="id" class="model.ResponseNoteId">
<key-property name="ecbResponseId" type="long">
<column name="ECB_RESPONSE_ID" precision="15" scale="0" />
</key-property>
<key-property name="ecbEligibilityId" type="int">
<column name="ECB_ELIGIBILITY_ID" />
</key-property>
<key-property name="ecbNotesId" type="int">
<column name="ECB_NOTES_ID" />
</key-property>
</composite-id>
<property name="notes" type="string">
<column name="NOTES" length="264" />
</property>
</class>
</hibernate-mapping>
Generated java with Ant task:
Code:
package model;
// Generated May 24, 2006 2:51:40 PM by Hibernate Tools 3.1.0.beta5
/**
* ResponseNoteId generated by hbm2java
*/
public class ResponseNoteId implements java.io.Serializable {
// Fields
private long ecbResponseId;
private int ecbEligibilityId;
private int ecbNotesId;
// Constructors
/** default constructor */
public ResponseNoteId() {
}
/** full constructor */
public ResponseNoteId(long ecbResponseId, int ecbEligibilityId, int ecbNotesId) {
this.ecbResponseId = ecbResponseId;
this.ecbEligibilityId = ecbEligibilityId;
this.ecbNotesId = ecbNotesId;
}
// Property accessors
public long getEcbResponseId() {
return this.ecbResponseId;
}
public void setEcbResponseId(long ecbResponseId) {
this.ecbResponseId = ecbResponseId;
}
public int getEcbEligibilityId() {
return this.ecbEligibilityId;
}
public void setEcbEligibilityId(int ecbEligibilityId) {
this.ecbEligibilityId = ecbEligibilityId;
}
public int getEcbNotesId() {
return this.ecbNotesId;
}
public void setEcbNotesId(int ecbNotesId) {
this.ecbNotesId = ecbNotesId;
}
}
Generated java within Eclipse:
Code:
package model;
// Generated May 24, 2006 11:43:19 AM by Hibernate Tools 3.1.0.beta5
/**
* EcbNotesRespId generated by hbm2java
*/
public class EcbNotesRespId implements java.io.Serializable {
// Fields
private long ecbResponseId;
private int ecbEligibilityId;
private int ecbNotesId;
// Constructors
/** default constructor */
public EcbNotesRespId() {
}
/** full constructor */
public EcbNotesRespId(long ecbResponseId, int ecbEligibilityId,
int ecbNotesId) {
this.ecbResponseId = ecbResponseId;
this.ecbEligibilityId = ecbEligibilityId;
this.ecbNotesId = ecbNotesId;
}
// Property accessors
public long getEcbResponseId() {
return this.ecbResponseId;
}
public void setEcbResponseId(long ecbResponseId) {
this.ecbResponseId = ecbResponseId;
}
public int getEcbEligibilityId() {
return this.ecbEligibilityId;
}
public void setEcbEligibilityId(int ecbEligibilityId) {
this.ecbEligibilityId = ecbEligibilityId;
}
public int getEcbNotesId() {
return this.ecbNotesId;
}
public void setEcbNotesId(int ecbNotesId) {
this.ecbNotesId = ecbNotesId;
}
public boolean equals(Object other) {
if ((this == other))
return true;
if ((other == null))
return false;
if (!(other instanceof EcbNotesRespId))
return false;
EcbNotesRespId castOther = (EcbNotesRespId) other;
return (this.getEcbResponseId() == castOther.getEcbResponseId())
&& (this.getEcbEligibilityId() == castOther
.getEcbEligibilityId())
&& (this.getEcbNotesId() == castOther.getEcbNotesId());
}
public int hashCode() {
int result = 17;
result = 37 * result + (int) this.getEcbResponseId();
result = 37 * result + this.getEcbEligibilityId();
result = 37 * result + this.getEcbNotesId();
return result;
}
}
With all this code with Ant task I get ResponseNoteId java file without equals or hashCode methods. While within Eclipse, using the same code I get equals and hashCode implemented.
What am I missing here?
Andrey