Middlegen-Hibernate-r5使用之 oracle10g(Inber原创)

王朝oracle·作者佚名  2007-05-24
窄屏简体版  字體: |||超大  

Middlegen-Hibernate-r5配置

1得到 Middlegen-Hibernate-r5包 后将其解压到d:\Middlegen-Hibernate-r5

2 把数据库驱动程序(这里用的是ojdbc14.jar)放到d:\Middlegen-Hibernate-r5 \lib目录下

3 配置数据参数D:\Middlegen-Hibernate-r5\config\database\oracle.xml

<property environment="env"/>

<property name="database.script.file" value=""/>

<property name="database.driver.file" value="${lib.dir}/ojdbc14.jar"/>

<property name="database.driver.classpath" value="${database.driver.file}"/>

<property name="database.driver" value="oracle.jdbc.driver.OracleDriver"/>

<property name="database.url" value="jdbc:oracle:thin:@192.168.0.1:1521:dbname"/>

<property name="database.userid" value="username"/>

<property name="database.password" value="password"/>

<property name="database.schema" value="username"/>

<property name="database.catalog" value=""/>

<!--property name="jboss.datasource.mapping" value="Oracle7"/-->

<property name="jboss.datasource.mapping" value="Oracle10g"/>

<!--property name="jboss.datasource.mapping" value="Oracle8"/-->

注意:将原文件修改黑体部分改成你需要的数据库配置,特别需要强调的是在oracle中要指定 <property name="database.schema" value="username"/>如未指则在生成时会出问题.value值和database.userid值一样

注意 问题1:如未指定database.schema则会出现以下错误:

D:\Middlegen-Hibernate-r5\build.xml:148: middlegen.MiddlegenException: Middlegen

successfully connected to the database, but couldn't find any tables. Perhaps t

he specified schema or catalog is wrong? -Or maybe there aren't any tables in th

e database at all?

Configured schema:

Configured catalog:

Available schemas:

ANONYMOUS

CTXSYS

...

Available catalogs:

问题1解决办法按本节的正确配置注意事项.

注意问题2: 如果未删除oracle10g中的垃圾表如"BINjR8PK5HhrrgMK8KmgQ9nw== "见分则会出现如下错误:

D:\Middlegen-Hibernate-r5\build.xml:148: middlegen.MiddlegenException: Database

problem:ORA-01424: 转义符之后字符缺失或非法

问题解决办法:删除oracle10g中的垃圾表然后再按生成步骤进行,删除oracle10g中的所有垃圾表见文章如http://blog.csdn.net/inber/archive/2006/07/22/958372.aspx

4 修改build.xml引用的数据库配置

找到

<!DOCTYPE project [

<!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">

]>

将其改为:

<!DOCTYPE project [

<!ENTITY database SYSTEM "file:./config/database/oracle.xml">

]>

5 修改hbm文件的输出目录

原为 <property name="build.gen-src.dir" value="${build.dir}/gen-src"/>

默认为build\gen-src目录,当然你也可以改成你期望的如

改为<property name="build.gen-src.dir" value="c:\hbm"/>

6 修改hbm文件的包名

<hibernate

destination="${build.gen-src.dir}"

package="${name}.hibernate"

genXDocletTags="flase"

genIntergratedCompositeKeys="false"

javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"

/>

其中${name}默认值为airline 也就是 package的默认值为airline.hibernate使用默认值生成一个.hbm文件时就对应的属于airline.hibernate包可以把它改为你要的包如下:

<hibernate

destination="${build.gen-src.dir}"

package="model"

genXDocletTags="flase"

genIntergratedCompositeKeys="false"

javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"

/>

则生成后的包为model

这里有个属性 genXDocletTags 如设置为True生成的代码将包含xdoclettag,为以后的开发过程中用借助xdoclet进行映射调整提供帮助

至此对middlegen的配置完毕,用ant 运行Middlegen-Hibernate-r5,从数据库生成对应的hbm文件.

用ant运行结果:

(图1 middlegn运行结果)

(图2 生成的***.hbm.xml)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航