用xdoclet生成hibernate映射文件
来源:互联网 发布:关晓彤网络直播 编辑:程序博客网 时间:2024/05/17 03:30
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>首先你要下载xdoclet-1.2.3,ant1.6.5,然后写项目管理文件build.properties,build.xml。举例如下:build.properties内容:xdoclet.lib=E:/xdoclet-1.2.3/libbuild.xml内容:<?xml version="1.0" encoding="UTF-8"?><project name="pms" default="" basedir="."><property file="build.properties" /><property name="app.home" value="." /><property name="app.name" value="pms" /><property name="src.dir" value="${app.home}/src" /><path id="xdoclet.classpath"><fileset dir="${xdoclet.lib}"><include name="*.jar" /></fileset></path><!-- =================================================================== --><!-- Initialise --><!-- =================================================================== --><target name="init"><tstamp><format property="TODAY" pattern="d-MM-yy" /></tstamp><taskdef name="hibernatedoclet"classname="xdoclet.modules.hibernate.HibernateDocletTask"classpathref="xdoclet.classpath" /></target><!-- =================================================================== --><!-- The "hibernatedoclet" target generates Hibernate mapping files --><!-- based on XDoclet marked-up Plain Old Java Object (POJO) --><!-- =================================================================== --><target name="hibernatedoclet" depends="init"unless="hibernatedoclet.unnecessary"description="Generate Hibernate mapping files"><taskdef name="hibernatedoclet"classname="xdoclet.modules.hibernate.HibernateDocletTask"classpathref="compile.classpath" /><!-- generate hibernate files --><hibernatedoclet destdir="${src.dir}"mergedir="${src.dir}" excludedtags="@version,@author,@todo,@see"addedtags="@xdoclet-generated at ${TODAY}" force="false"verbose="false"><fileset dir="${src.dir}"><include name="net/pms/model/*.java" /></fileset><hibernate version="3.0" /></hibernatedoclet></target></project>javabean如下:package net.pms.model;import java.io.Serializable;import java.util.Date;import org.apache.commons.lang.builder.ToStringBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;import org.apache.commons.lang.builder.EqualsBuilder;/** * * @author jfish * @hibernate.class table="person" */public class Person implements Serializable {private static final long serialVersionUID = 1044237873392048222L;private Long id;private String name;private Date createTime;/** * @return Returns the createTime. * @hibernate.property column = "ts" */public Date getCreateTime() {return createTime;}/** * @param createTime * The createTime to set. */public void setCreateTime(Date createTime) {this.createTime = createTime;}/** * @return Returns the id. * @hibernate.id column = "person_id" generator-class = "native" * unsaved-value = "not null" */public Long getId() {return id;}/** * @param id * The id to set. */public void setId(Long id) {this.id = id;}/** * @return Returns the name. * @hibernate.property */public String getName() {return name;}/** * @param name * The name to set. */public void setName(String name) {this.name = name;}/** * @see java.lang.Object#toString() */public String toString() {return new ToStringBuilder(this).append("name", this.name).append("id",this.id).append("createTime", this.createTime).toString();}/** * @see java.lang.Object#hashCode() */public int hashCode() {return new HashCodeBuilder(-96436153, 713792057).appendSuper(super.hashCode()).append(this.createTime).append(this.name).append(this.id).toHashCode();}/** * @see java.lang.Object#equals(Object) */public boolean equals(Object object) {if (!(object instanceof Person)) {return false;}Person rhs = (Person) object;return new EqualsBuilder().appendSuper(super.equals(object)).append(this.createTime, rhs.createTime).append(this.name, rhs.name).append(this.id, rhs.id).isEquals();}}生成的映射文件如下:<?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="net.pms.model.Person" table="person"><id name="id" column="person_id" type="java.lang.Long"unsaved-value="not null"><generator class="native"><!-- To add non XDoclet generator parameters, create a file named hibernate-generator-params-Person.xml containing the additional parameters and place it in your merge dir. --></generator></id><property name="createTime" type="java.util.Date" update="true"insert="true" column="ts" /><property name="name" type="java.lang.String" update="true"insert="true" column="name" /><!--To add non XDoclet property mappings, create a file namedhibernate-properties-Person.xmlcontaining the additional properties and place it in your merge dir.--></class></hibernate-mapping>