appfuse2 根据表生成自己想生成的pojo

我这里说的生成pojo是指在已经设计好数据表结构后, 通过执行 mvn appfuse:gen-model 命令根据表生成相应的pojo.

 

开始时我用的是 mysql 数据库, 设计好数据表后通过上面的命令能正确的生成所有我自己创建的表对应的 pojo, 但如果重复执行上面的命令, 系统也会按规按矩的再次重复生成所有的 pojo, 而如果我只是新加了一个表, 也会重复生成以前生成过的 pojo.

 

当然这还不是问题, 因为最后还是能得到要得到的结果.

 

后来我把数据库换成 sqlserver 2000, 这次的问题不只是上面的问题, 而且上面的命令会生成部分系统表对象的 pojo, 这显然不是我要的了, 不过这个问题其实也很好解决, 不就是多生成了几个 pojo嘛, 直接在源代码里删了就行了. 当然还是其他更"正规"点的解决办法.

 

下面就看"正规"点的解决办法:

找到生成项目的 myproject/target/test-classes/hibernate.reveng.xml 文件.

里面的内容大眼一看差不多能懂, 有定义类型映射的, 有按表名过滤表的.

原始文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering
  SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >

<hibernate-reverse-engineering>

    <type-mapping>
        <!-- jdbc-type is name fom java.sql.Types -->
        <sql-type jdbc-type="VARCHAR" length='1' hibernate-type="yes_no"/>
        <!-- length, scale and precision can be used to specify the mapping precisly -->
        <sql-type jdbc-type="NUMERIC" precision='1' hibernate-type="boolean"/>
        <!-- the type-mappings are ordered. This mapping will be consulted last,
        thus overriden by the previous one if precision=1 for the column -->
        <sql-type jdbc-type="BIGINT" hibernate-type="java.lang.Long"/>
        <sql-type jdbc-type="INTEGER" hibernate-type="java.lang.Long"/>
        <sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long"/>
    </type-mapping>

    <!-- BIN$ is recycle bin tables in Oracle -->
    <table-filter match-name="BIN$.*" exclude="true"/>

    <!-- Exclude AppFuse tables from all catalogs/schemas -->
    <!-- 按表名过滤表 -->
    <table-filter match-name="app_user" exclude="true"/>
    <table-filter match-name="role" exclude="true"/>
    <table-filter match-name="user_role" exclude="true"/>
    
</hibernate-reverse-engineering>

 

现在, 如果我要过滤掉 teacher 表 和 系统表, 则可以修改如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering
  SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >

<hibernate-reverse-engineering>

	<schema-selection match-schema="dbo"/>

    <type-mapping>
        <!-- jdbc-type is name fom java.sql.Types -->
        <sql-type jdbc-type="VARCHAR" length='1' hibernate-type="yes_no"/>
        <!-- length, scale and precision can be used to specify the mapping precisly -->
        <sql-type jdbc-type="NUMERIC" precision='1' hibernate-type="boolean"/>
        <!-- the type-mappings are ordered. This mapping will be consulted last,
        thus overriden by the previous one if precision=1 for the column -->
        <sql-type jdbc-type="BIGINT" hibernate-type="java.lang.Long"/>
        <sql-type jdbc-type="INTEGER" hibernate-type="java.lang.Long"/>
        <sql-type jdbc-type="NUMERIC" hibernate-type="java.lang.Long"/>
    </type-mapping>

    <!-- BIN$ is recycle bin tables in Oracle -->
    <table-filter match-name="BIN$.*" exclude="true"/>

    <!-- Exclude AppFuse tables from all catalogs/schemas -->
    <table-filter match-name="app_user" exclude="true"/>
    <table-filter match-name="role" exclude="true"/>
    <table-filter match-name="user_role" exclude="true"/>
	<table-filter match-name="teacher" exclude="true"/>
	<table-filter match-name="dtpro.*" exclude="true"/>
	<table-filter match-name="sys.*" exclude="true"/>
    
</hibernate-reverse-engineering>

 

 

这样, 再次运行 mvn appfuse:gen-model 命令时就会过滤掉 teacher表, 以及以 dtpro 和 sys 开头的表.

还需要注意的是通配符写法.

 

这样就能生成自己想生成的 pojo了. 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值