文档章节

如何自动生成JPA元模型对象(1)—hibernate元模型生成器

JasonSE
 JasonSE
发布于 2015/12/02 23:05
字数 623
阅读 1328
收藏 2

       Hibernate静态元模型生成器既可以通过命令行使用,也可以集成在IDE中使用。大多数情况下,如果使用了jdk6及以上的版本,并且注解处理器的jar已经被包含在classpath中,注解处理器会自动的运行,因为Hibernate静态元模型生成器的jar包的META-INF/services目录里已经包含了文件javax.annotation.processing.Processor。

1.通过命令行使用(maven)

在maven构建的过程中,有几种方式可以运行注解处理器。其一,就是上面提到的在classpath中引入它的jar包。如果在classpath中有多个注解处理器,可以在maven的编译插件中传入处理选项参数

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <compilerArguments>
            <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
        </compilerArguments>
    </configuration>
</plugin>
使用maven-compiler-plugin的方式的缺点是maven编译插件当前不允许指定多个编译参数。一个比较好的方式是在编译插件中禁用注解处理器,使用maven-processor-plugin。可以按照如下方式禁用 maven-compiler-plugin:
<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <compilerArgument>-proc:none</compilerArgument>
    </configuration>
</plugin>

按照上面处理之后,就可以在maven-processor-plugin中使用注解处理器。可以按照如下配置:


<plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>2.0.5</version>
    <executions>
        <execution>
            <id>process</id>
            <goals>
                <goal>process</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
                <processors>                                
                    <processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
                </processors>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>4.3.5.Final</version>
        </dependency>
    </dependencies>
</plugin>

2.集成在IDE中使用(eclipse)


在Galileo版本之后,在eclipse的Java Compiler(右键点击项目->属性)里增加了一个名为Annotation Processing的选项,用于配置各种各样的注解处理。打开Annotation Processing的配置界面,勾选“Enable Annotation Processing”,配置代码生成的目录,然后,切换到下面的“Factory Path”配置界面,点击Add Jars,将JPA2.0和hibernate-jpamodelgen的jar包引入,点击Apply,即可:

————————————————————————————————————————————————————————————————

3.所需jar包下载地址:

hibernate-jpa-2.0-api-1.0.1.Final.jar

hibernate-jpamodelgen-4.3.5.Final.jar

© 著作权归作者所有

JasonSE
粉丝 32
博文 56
码字总数 16154
作品 0
朝阳
程序员
私信 提问
使用 Ruby 开发代码生成器

在软件开发工程中,源代码生成工具是提升生产效率的利器。在我的工作中,曾经使用过 XLST、FreeMaker 等多种技术开发源代码生成器,最终我还是选择了脚本语言 Ruby。Ruby 以其简洁有趣的语法...

IBMdW
2012/07/21
1K
0
理解JPA注解@GeneratedValue

一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法,...

一生只为虞美人
2018/07/25
0
0
Hibernate4之JPA规范配置详解

@Table Table用来定义entity主表的name,catalog,schema等属性。 属性说明: name:表名 catalog:对应关系数据库中的catalog schema:对应关系数据库中的schema UniqueConstraints:定义一...

Zhao-Qian
2013/11/11
7.4K
0
JPA和Hibernate到底是什么关系???

(文章借用了其他几篇博客中的内容,因为是初学者,许多概念性的关系自己不能完全理解,就将大神的搬了过来,如有不当,可留言,本人自会妥善处理,谢谢) 在学习框架的过程中,发现学的东西...

moson
2018/08/17
0
0
关于JPA的解释(比较基础的解释)

什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工...

Littlebox
05/31
16
0

没有更多内容

加载失败,请刷新页面

加载更多

Activity启动模式二

上篇文章Activity启动模式一主要介绍了Activity的四种启动模式,这些启动模式都是在AndroidManifest中进行配置的。除此之外,Android系统还通过Intent类提供了一些标志位,同样可以指定Activ...

ltlovezh
53分钟前
7
0
三原色还原

1、Color Filter Array — CFA 随着数码相机、手机的普及,CCD/CMOS 图像传感器近年来得到广泛的关注和应用。 图像传感器一般都采用一定的模式来采集图像数据,常用的有 BGR 模式和 CFA 模式...

天王盖地虎626
今天
7
0
kubernetes pod exec接口调用

正文 一般生产环境上由于网络安全策略,大多数端口是不能为集群外部访问的。多个集群之间一般都是通过k8s的ApiServer组件提供的接口通信,如https://192.168.1.101:6443。所以在做云平台时,...

码农实战
今天
8
0
3_数组

3_数组

行者终成事
今天
8
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部