浏览 3797 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-14
请大家直接看代码吧.天太热了... 环境是eclipse ganymede , jdk 6.0, hibernate 3.2, xdoclet1.2.3,ant 1.6.5,mysql5.0 通过Car 和 Owner的关系可以看出1个Owner可以有0..*个Car import java.io.Serializable; /** * @hibernate.class table="car" * @author Charles King * */ public class Car implements Serializable{ private Integer carId; private String carName; /** * @hibernate.id generator-class = "native" column="car_id" * @return */ public Integer getCarId() { return carId; } public void setCarId(Integer carId) { this.carId = carId; } /** * @hibernate.property column="car_name" * @return */ public String getCarName() { return carName; } public void setCarName(String carName) { this.carName = carName; } }
import java.io.Serializable; import java.util.HashSet; import java.util.Set; /** * @hibernate.class table = "owner" * @author Charles King * */ public class Owner implements Serializable { private Integer ownerId; private String ownerName; private Set cars = new HashSet(); /** * @hibernate.id generator-class = "native" column = "owner_id" * @return */ public Integer getOwnerId() { return ownerId; } public void setOwnerId(Integer ownerId) { this.ownerId = ownerId; } /** * @hibernate.property column = "owner_name" * @return */ public String getOwnerName() { return ownerName; } public void setOwnerName(String ownerName) { this.ownerName = ownerName; } /** * @hibernate.set inverse = "true" cascade = "all" * @hibernate.collection-key column = "car_id" * @hibernate.collection-one-to-many class = "net.alp.model.Car" * @return */ public Set getCars() { return cars; } public void setCars(Set cars) { this.cars = cars; } }
build.xml <?xml version="1.0" encoding="UTF-8"?> <project> <!-- set properties --> <property name="src.dir" value="src"></property> <property name="lib.dir" value="lib"></property> <property name="build.dir" value="build"></property> <property name="dist.dir" value="dist"></property> <property name="project_name" value="xdoclet"></property> <property file="hibernate.properties"></property> <path id="lib.classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar"/> </fileset> </path> <path id="src.classpath"> <pathelement location="${src.dir}"/> </path> <path id="runtime.classpath"> <path refid="lib.classpath"></path> <path refid="src.classpath"></path> </path> <!-- ================================= target: genate-hiberate3.x ================================= --> <target name="gen-hib"> <taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="runtime.classpath" > </taskdef> <hibernatedoclet destdir="${src.dir}" verbose="true" > <fileset dir="${src.dir}"> <include name="**/*.java"/> </fileset> <hibernate version="3.0"/> <hibernatecfg dialect="${hibernate.dialect}" jdbcUrl="${hibernate.connection.url}" driver="${hibernate.connection.driver_class}" username="${hibernate.connection.username}" password="${hibernate.connection.password}" showSql="false" version="3.0" /> </hibernatedoclet> </target> </project>
hibernate.properties hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.url=jdbc:mysql://localhost:3306/test hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.username=root hibernate.connection.password=root
表建好了,这是用ant生成的SQL alter table car drop foreign key FK17FD49D5CA7DA; drop table if exists car; drop table if exists owner; create table car ( car_id integer not null auto_increment, car_name varchar(255), primary key (car_id) ); create table owner ( owner_id integer not null auto_increment, owner_name varchar(255), primary key (owner_id) ); alter table car add index FK17FD49D5CA7DA (car_id), add constraint FK17FD49D5CA7DA foreign key (car_id) references owner (owner_id);
生成这段的SQL在下面补上 <!-- ================================= target: gen sql ================================= --> <target name="gen sql"> <mkdir dir="sql"/> <java classname="org.hibernate.tool.hbm2ddl.SchemaExport" fork="true"> <classpath refid="runtime.classpath"></classpath> <arg value="--text"/> <arg value="--quiet"/> <arg value="--format"/> <arg value="--output=sql/schema.sql"/> <arg value="--properties=${basedir}/hibernate.properties"/> <arg value="--delimiter=;"/> <arg value="${src.dir}/net/alp/model/*.xml"/> </java> </target>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-07-15
Xdoclet这个项目已经死了很久了(据个人所知,一些Hibernate3.0之后才出现的配置它都不支持的),如果很喜欢Annotation的话,就是用Hibernate官方的东西吧。
|
|
返回顶楼 | |
发表时间:2008-07-16
好的,谢谢提醒.我去看看.
|
|
返回顶楼 | |