Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从hibernate生成时更改POJO名称_Hibernate_Naming Conventions_Hibernate Mapping_Pojo - Fatal编程技术网

从hibernate生成时更改POJO名称

从hibernate生成时更改POJO名称,hibernate,naming-conventions,hibernate-mapping,pojo,Hibernate,Naming Conventions,Hibernate Mapping,Pojo,我想知道如何在使用hibernate生成POJO时更改其名称 我的表有一个命名约定:FR_u和TRN_u。 在生成POJO时,我希望删除FR和TRN,并将VO附加到名称中 比如说, 表名:FR\u ACCOUNT\u MST 要生成的POJO:accountMstVO 谢谢, Varun我假设您正在使用Hibernate工具的功能,从数据库元数据对域模型类进行反向工程。在这种情况下,您可能需要实现一个自定义的org.hibernate.cfg.reveng.reverseengEngineeri

我想知道如何在使用hibernate生成POJO时更改其名称

我的表有一个命名约定:FR_u和TRN_u。 在生成POJO时,我希望删除FR和TRN,并将VO附加到名称中

比如说,

表名:FR\u ACCOUNT\u MST

要生成的POJO:accountMstVO

谢谢,
Varun

我假设您正在使用Hibernate工具的功能,从数据库元数据对域模型类进行反向工程。在这种情况下,您可能需要实现一个自定义的
org.hibernate.cfg.reveng.reverseengEngineeringStrategy

对,您必须扩展delegatingReverseengStrategy类(hibernate-tool.jar库)并重写tableToClassName方法

下面的代码将FR_ACCOUNT_MST重命名为FR_ACCOUNT_MSTVO

我让你用一些正则表达式来得到想要的结果

变量className包含包+类名(即.com.mycompany.project.hibernate.FR\u ACCOUNT\u MST)

资料来源:


也可以通过在hibernate.reveng.xml文件中添加每个pojo的名称来实现:

<hibernate-reverse-engineering>
  <table-filter match-schema="CO" match-name="FR_ACCOUNT_MST"/>

  <table name="FR_ACCOUNT_MST" schema="CO" class="com.bonables.co.hibernate.pojo.accountMstVO" />

</hibernate-reverse-engineering>

Damn。。这是我唯一没有标上答案的问题。。谢谢你的解决方案。。尽管几个月前我需要它。。欢迎来到SOF!
<hibernate-reverse-engineering>
  <table-filter match-schema="CO" match-name="FR_ACCOUNT_MST"/>

  <table name="FR_ACCOUNT_MST" schema="CO" class="com.bonables.co.hibernate.pojo.accountMstVO" />

</hibernate-reverse-engineering>