栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在休眠状态下将Oracle时间戳映射到适当的Java类型?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在休眠状态下将Oracle时间戳映射到适当的Java类型?

我找到了解决此问题的方法。问题本身似乎与以下事实有关:Netbeans
6.5(直到现在是我的更高版本)不允许您从现有

hibernate.reveng.xml
文件对数据库进行反向工程。该版本预定在版本7中可用。

我发现的解决方法是创建一个ant任务来重新创建

hbm.xml
和pojo
java文件。我目前很想在进行清理和构建时发生这种情况,但是我将尝试寻找一种将其完全分离的方法,因为只有在数据库模式更改时才需要运行它。

为此,尽管您需要进行编辑和构建,但仍需要编辑

build.xml
文件。

第一部分是您将需要的库。因此添加:

<path id="toolslib">        <path location="lib/hibernate-support/hibernate-tools.jar" />        <path location="lib/hibernate-support/hibernate3.jar" />        <path location="lib/hibernate-support/freemarker.jar" />        <path location="lib/hibernate-support/jtidy-r938.jar" />        <path location="lib/ojdbc14.jar" /></path>

您的机器上应该已经有hibernate-
tools.jar,hibernate3.jar和ojdbc14.jar文件。因此,只需更改它们的路径即可。该freemaker.jar和jtidy-r938.jar将需要下载的,因为我没有那些。

在此之下,

build.xml
您需要添加:

<taskdef name="hibernatetool"     classname="org.hibernate.tool.ant.HibernateToolTask"     classpathref="toolslib">    <classpath>        <fileset dir="lib"> <include name="**/*.jar"/>        </fileset>    </classpath></taskdef>

您将需要的最后一部分是在清理后部分中运行的集:

<target name="-post-clean">        <delete dir="src/*Put the foler where your pojos and hbm.xml files are located*"/>        <hibernatetool> <jdbcconfiguration     configurationfile="srchibernate.cfg.xml"     packagename="*the package where you want them recreated*"     revengfile="srchibernate.reveng.xml"     detectmanytomany="true" /> <hbm2hbmxml destdir="src" /> <hbm2java  destdir="src" />        </hibernatetool></target>
  • 删除部分将删除现有的hbm和pojo文件,然后重新创建它们。
  • configurationfile
    点到你的主配置文件。
  • 包名称是要在其中创建它们的点分隔的包(
    com.stackoverflow.pojo
    例如)。
  • revengfile
    是创建hbm和pojo文件时要使用的逆向工程xml文件。
  • hbm2hbmxml
    将创建
    hbm.xml
    你的表格文件。
  • hbm2java
    会创建表的java的POJO文件。

现在,要使Oracle时间戳记不是

Serializable
,请编辑
hibernate.reveng.xml
文件并添加:

<type-mapping>        <sql-type jdbc-type="OTHER" hibernate-type="java.sql.Timestamp" /></type-mapping>

在schema-selection标签之后。

因此,整洁的构建和时间戳不会

java.sql.Timestamp
代替
Serializable
对象。

我知道这是一个很长的答案,但是对于您必须在

hibernate.reveng.xml
文件中设置的任何其他更改(我认为),这也应该起作用。我不是hibernate专家,因此您的工作量可能与此不同。

更新:
所以经过一番谷歌搜索后,我发现了这个网站,有关Netbeans中的自定义蚂蚁任务。因此,我只是简单地将目标的名称更改为

gen-dao
,现在,每次执行清理和构建操作时,它就不会运行,而只是在我专门调用它时。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/447619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号