When generating the DDL, it raised the following exceptions :
[schemaexport] - Hibernate 2.0.1
[schemaexport] - loaded properties from resource hibernate.properties:
{hibernate.connection.username=macausms,
hibernate.connection.password=123456,
hibernate.cglib.use_reflection_optimizer=true,
hibernate.dialect=net.sf.hibernate.dialect.PostgreSQLDialect,
hibernate.show_sql=true, hibernate.use_outer_join=true,
hibernate.jdbc.use_scrollable_resultset=false,
hibernate.connection.datasource=TestDS}
[schemaexport] - using CGLIB reflection optimizer
[schemaexport] - JVM proxy support: true
[schemaexport] - Mapping file:
C:\Projects\xproducts\test\build\gen-src\hibernate\eric\test\bean\User.hbm.x
ml
[schemaexport] - Mapping class: eric.test.bean.User -> e_User
[schemaexport] - Mapping collection: eric.test.bean.User.roles -> roles
[schemaexport] - Mapping file:
C:\Projects\xproducts\test\build\gen-src\hibernate\eric\test\bean\Role.hbm.x
ml
[schemaexport] - Mapping class: eric.test.bean.Role -> e_Role
[schemaexport] - Mapping collection: eric.test.bean.Role.users -> users
[schemaexport] - Using dialect: net.sf.hibernate.dialect.PostgreSQLDialect
BUILD FAILED
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:460)
at net.sf.hibernate.mapping.Column.setName(Column.java:43)
at net.sf.hibernate.cfg.Binder.bindColumns(Binder.java:322)
at net.sf.hibernate.cfg.Binder.bindManyToOne(Binder.java:497)
at net.sf.hibernate.cfg.Binder.bindCollectionSecondPass(Binder.java:1031)
at net.sf.hibernate.cfg.Binder.bindSetSecondPass(Binder.java:904)
at net.sf.hibernate.cfg.Binder$SetSecondPass.secondPass(Binder.java:1168)
at net.sf.hibernate.cfg.Binder$SecondPass.doSecondPass(Binder.java:1116)
at
net.sf.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:495)
at
net.sf.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.ja
va:352)
at net.sf.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:51)
at
net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.getSchemaExport(SchemaExportT
ask.java:198)
at
net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.execute(SchemaExportTask.java
:129)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
at org.apache.tools.ant.Main.runBuild(Main.java:609)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)
Total time: 42 seconds
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:460)
at net.sf.hibernate.mapping.Column.setName(Column.java:43)
at net.sf.hibernate.cfg.Binder.bindColumns(Binder.java:322)
at net.sf.hibernate.cfg.Binder.bindManyToOne(Binder.java:497)
at net.sf.hibernate.cfg.Binder.bindCollectionSecondPass(Binder.java:1031)
at net.sf.hibernate.cfg.Binder.bindSetSecondPass(Binder.java:904)
at net.sf.hibernate.cfg.Binder$SetSecondPass.secondPass(Binder.java:1168)
at net.sf.hibernate.cfg.Binder$SecondPass.doSecondPass(Binder.java:1116)
at
net.sf.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:495)
at
net.sf.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.ja
va:352)
at net.sf.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:51)
at
net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.getSchemaExport(SchemaExportT
ask.java:198)
at
net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.execute(SchemaExportTask.java
:129)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
at org.apache.tools.ant.Main.runBuild(Main.java:609)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)
String index out of range: 0
The part of generate DDL in build.xml:
----------------------------------------------------------------------------
-----------
<schemaexport
properties="${project.build.classes}/hibernate.properties"
quiet="no"
text="no"
drop="no"
delimiter=";"
output="${project.build.dir}/${project.name}.sql">
<fileset dir="${project.gen.hibernate}">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaexport>
----------------------------------------------------------------------------
---
Please check my Source codes .
==========================
If you know what you are doing,
it is not called RESEARCH!
==========================
Role.java
Description: Binary data
User.java
Description: Binary data
hibernate.properties
Description: Binary data
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class
name="eric.test.bean.Role"
table="e_Role"
>
<id
name="roleId"
column="roleId"
type="long"
unsaved-value="any"
>
<generator class="sequence">
</generator>
</id>
<property
name="name"
type="java.lang.String"
column="name"
/>
<set
name="users"
lazy="true"
inverse="false"
cascade="none"
sort="unsorted"
>
<key
column="role_fk"
/>
<many-to-many
class="eric.test.bean.User"
column="roleId"
outer-join="auto"
/>
</set>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-Role.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class
name="eric.test.bean.User"
table="e_User"
>
<id
name="userId"
column="userId"
type="long"
>
<generator class="sequence">
</generator>
</id>
<property
name="name"
type="java.lang.String"
column="name"
/>
<set
name="roles"
lazy="true"
inverse="false"
cascade="none"
sort="unsorted"
>
<key
column="user_fk"
/>
<many-to-many
class="eric.test.bean.Role"
column=""
outer-join="auto"
/>
</set>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-User.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>
