头大了,ant xdoclet生成表格结构问题

tscqnl 2009-02-26 02:54:37
各位大虾帮忙看下怎么会生成不了表结构(sql语句)
hibernate.properties
--------------------
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.connection.url=jdbc\:mysql\://localhost\:3306/test
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.username=mysqltsc
hibernate.connection.password=123456
----------------------
build.xml
<project name="hibernate映射" default="生成Hibernate映射文件" basedir=".">
<property name="src.dir" value="${basedir}/src" />
<property name="xdoclet.home" value="E:/TANGSHICHUN/program/xdoclet-plugins-1.0.3" />
<property name="hibernate.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib" />
<property file="hibernate.properties" />
<!-- 定义xdoclet的classpath -->
<path id="xdoclet.task.classpath">
<fileset dir="${xdoclet.home}/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${xdoclet.home}/plugins">
<include name="**/*.jar" />
</fileset>
</path>
<!-- 定义hibernate的classpath -->
<path id="hibernate.task.classpath">
<fileset dir="${hibernate.lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${basedir}/hibernate_tools">
<include name="**/*.jar" />
</fileset>
</path>
<!-- 定义任务 -->
<taskdef name="xdoclet" classname="org.xdoclet.ant.XDocletTask" classpathref="xdoclet.task.classpath" />
<target name="生成Hibernate配置文件">
<xdoclet>
<fileset dir="${src.dir}/model">
<include name="**/*.java" />
</fileset>
<component classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin" destdir="${src.dir}" version="3.0" hbm2ddlauto="update" jdbcurl="${hibernate.connection.url}" jdbcdriver="${hibernate.connection.driver_class}" jdbcusername="${hibernate.connection.username}" jdbcpassword="${hibernate.connection.password}" dialect="${hibernate.dialect}" showsql="true" encoding="utf-8" />
</xdoclet>
</target>
<target name="生成Hibernate映射文件">
<xdoclet>
<fileset dir="${src.dir}/model/">
<include name="**/*.java" />
</fileset>
<component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin" destdir="${src.dir}" version="3.0" encoding="utf-8" />
</xdoclet>
</target>
<target name="生成SQL语句" depends="生成Hibernate映射文件">
<mkdir dir="sql" />
<java classname="org.hibernate.tool.hbm2ddl.SchemaExport" fork="true">
<classpath refid="hibernate.task.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}/model/fk11/*.hbm.xml" />
</java>
</target>
</project>

类:
package model.fk11;
/**
* @author Shichun Tang
* @hibernate.class table="PERSON"
*/
public class Person {
/**
* @hibernate.id generator-class="native" column="ID" type="Integer"
*/
private Integer id;
/**
* @hibernate.property column="NAME" type="String" length="40"
* not-null="true"
* @hibernate.meta attribute="field-description" value="人名"
*/
private String name;
/**
* @hibernate.property column="AGE" type="Integer"
* @hibernate.meta attribute="field-description" value="年龄"
*/
private int age;
/**
* @hibernate.many-to-one foreign-key="ADDRESS_ID" unique="true"
* @hibernate.meta attribute="field-description" value="引用地址表中的ID"
*/
private Address address;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public Address getAddress() {
return address;
}

public void setAddress(Address address) {
this.address = address;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}
}
package model.fk11;
/**
* @hibernate.class table="ADDRESS"
*/
public class Address {
/**
* @hibernate.id generator-class="native" type="Integer" column="ID"
*/
private Integer id;
/**
* @hibernate.property column="DETAIL" not-null="true" type="String"
* length="255"
* @hibernate.meta attribute="field-description" value="地址详细"
*/
private String detail;

public String getDetail() {
return detail;
}

public void setDetail(String detail) {
this.detail = detail;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}
}

执行后控制台的信息:
Buildfile: E:\TANGSHICHUN\TSC-35PRJ\35-PRJ\hibernate-mapping\build.xml
生成Hibernate映射文件:
[xdoclet] Running org.xdoclet.plugin.hibernate.HibernateMappingPlugin
[xdoclet] * Generate mapping for 'Address' entity
[xdoclet] * Generate mapping for 'Person' entity
生成Hibernate映射文件:
[xdoclet] Running org.xdoclet.plugin.hibernate.HibernateMappingPlugin
生成SQL语句:
[java] log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
[java] log4j:WARN Please initialize the log4j system properly.
[java] org.hibernate.InvalidMappingException: Could not parse mapping document from file E:\TANGSHICHUN\TSC-35PRJ\35-PRJ\hibernate-mapping\src\model\fk11\Person.hbm.xml
[java] at org.hibernate.cfg.Configuration.addFile(Configuration.java:319)
[java] at org.hibernate.cfg.Configuration.addFile(Configuration.java:287)
[java] at org.hibernate.tool.hbm2ddl.SchemaExport.main(SchemaExport.java:381)
[java] Caused by: org.hibernate.MappingException: class model.fk11.Person not found while looking for property: address
[java] at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:74)
[java] at org.hibernate.mapping.ToOne.setTypeUsingReflection(ToOne.java:58)
[java] at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2174)
[java] at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2151)
[java] at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2041)
[java] at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
[java] at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
[java] at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
[java] at org.hibernate.cfg.Configuration.add(Configuration.java:669)
[java] at org.hibernate.cfg.Configuration.addFile(Configuration.java:309)
[java] ... 2 more
[java] Caused by: java.lang.ClassNotFoundException: model.fk11.Person
[java] at java.net.URLClassLoader$1.run(Unknown Source)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClass(Unknown Source)
[java] at java.lang.ClassLoader.loadClassInternal(Unknown Source)
[java] at java.lang.Class.forName0(Native Method)
[java] at java.lang.Class.forName(Unknown Source)
[java] at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
[java] at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70)
[java] ... 11 more
生成Hibernate配置文件:
[xdoclet] Running org.xdoclet.plugin.hibernate.HibernateConfigPlugin
BUILD SUCCESSFUL
Total time: 4 seconds
...全文
202 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chyyyin 2009-02-26
  • 打赏
  • 举报
回复
顶起!
tscqnl 2009-02-26
  • 打赏
  • 举报
回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧