Customer.java
package org.roadway.wisp.test;
import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
/**
 * @hibernate.class table="ZD_COSTOMER"
 */
public class Customer implements Serializable
{
    private static final long serialVersionUID = 939548333216539319L;
    
    private Long              customerId;
    
    private String            customerName;
    
    private Date              birthday;
    
    private HashSet<Order>    orders;
    
    /**
     * @hibernate.id generator-class="sequence" column="CUSTOMER_ID"
     *               unsaved-value = "null"
     * @hibernate.generator-param name="sequence" value="SQ_PERSON_ID"
     * 
     * @return
     */
    public Long getCustomerId()
    {
        return customerId;
    }
    
    /**
     * @hibernate.property column="CUSTOMER_NAME" length="32" not-null="true"
     */
    public String getCustomerName()
    {
        return customerName;
    }
    
    /**
     * @hibernate.property column="BIRTHDAY"
     */
    public Date getBirthday()
    {
        return birthday;
    }
    
    /**
     * @hibernate.set table="ZD_ORDER" lazy="true" inverse="true"
     * @hibernate.key column="CUSTOMER_ID"
     * @hibernate.one-to-many class="org.roadway.wisp.test.Order"
     */
    public HashSet<Order> getOrders()
    {
        return orders;
    }
    
    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }
    
    public void setCustomerName(String customerName)
    {
        this.customerName = customerName;
    }
    
    public void setBirthday(Date birthday)
    {
        this.birthday = birthday;
    }
    
    public void setOrders(HashSet<Order> orders)
    {
        this.orders = orders;
    }
}
Order.java
package org.roadway.wisp.test;
import java.io.Serializable;
/**
 * @hibernate.class table="ZD_ORDER"
 */
public class Order implements Serializable
{
    private static final long serialVersionUID = 8989273619109202636L;
    
    private Long              orderId;
    
    private String            orderName;
    
    private Double            money;
    
    private Customer          customer;
    
    /**
     * @hibernate.id generator-class="sequence" column="ORDER_ID" unsaved-value =
     *               "null"
     * @hibernate.generator-param name="sequence" value="SQ_ORDER_ID"
     * 
     * @return
     */
    public Long getOrderId()
    {
        return orderId;
    }
    
    /**
     * @hibernate.property column="ORDER_NAME" length="32" not-null="true"
     */
    public String getOrderName()
    {
        return orderName;
    }
    
    /**
     * @hibernate.property column="MONEY" not-null="true"
     */
    public Double getMoney()
    {
        return money;
    }
    
    /**
     * @hibernate.many-to-one column="teacher_id" not-null="true"
     */
    public Customer getCustomer()
    {
        return customer;
    }
}
xdoclet.xml
<?xml version="1.0"?>
<project name="xdoclet" default="hibernate.mapping.generate" basedir=".">
    <property name="project.src" value="test"/>
    <property name="po.package" value="org/roadway/wisp/test"/>
    <property name="xdoclet.lib" value="E:/user_hvp/xdoclet-plugins-dist-1.0.4/lib"/>
    <path id="xdoclet.task.classpath">
        <fileset dir="${xdoclet.lib}">
            <include name="*.jar" />
        </fileset>
        <pathelement location="${xdoclet.lib}/xdoclet-plugin-hibernate-1.0.4.jar" />
    </path>
    <taskdef name="xdoclet" classname="org.xdoclet.ant.XDocletTask" classpathref="xdoclet.task.classpath" />
    <target name="hibernate.mapping.generate">
        <xdoclet>
            <fileset dir="${project.src}">
                <include name="${po.package}/*.java" />
            </fileset>
            <component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin" destdir="${basedir}/${project.src}" version="3.0" />
        </xdoclet>
    </target>
</project>
xdoclet1.x不支持泛型,xdoclet2支持!!