maven jpa_使用Hibernate 4,JPA和Maven的架构创建脚本

maven jpa

这种情况很简单–您想要在构建应用程序时生成数据库模式创建脚本(然后在目标数据库上执行脚本),这在Hibernate 3中相对容易,因为有 hibernate3-maven-plugin ,但是与Hibernate 4不兼容。当然,对于每个新项目,都应从Hibernate 4开始。 那么该怎么办? 它相对简单,但是需要花费一些时间进行研究和测试。 这个想法是使用SchemaExport工具。 但这有点棘手,因为它仅支持本地Hibernate配置,而不支持JPA。

首先,创建一个处理导出的命令行应用程序。 请注意,不建议使用Ejb3Configuration,但不建议将其用于外部使用-Hibernate在内部大量使用了它。 因此,这是一个正常的工作类:

@SuppressWarnings('deprecation')
public class JpaSchemaExport {public static void main(String[] args) throws IOException {execute(args[0], args[1], Boolean.parseBoolean(args[2]), Boolean.parseBoolean(args[3]));}public static void execute(String persistenceUnitName, String destination, boolean create, boolean format) {System.out.println('Starting schema export');Ejb3Configuration cfg = new Ejb3Configuration().configure(persistenceUnitName, new Properties());Configuration hbmcfg = cfg.getHibernateConfiguration();SchemaExport schemaExport = new SchemaExport(hbmcfg);schemaExport.setOutputFile(destination);schemaExport.setFormat(format);schemaExport.execute(true, false, false, create);System.out.println('Schema exported to ' + destination);}
}

请注意,我们没有将文件直接部署到目标数据库。 (.execute的第二个参数为false)。 这是因为在persistence.xml中没有数据库连接属性-它们是外部的。 稍后在maven构建中完成架构文件的部署,但这超出了本文的范围。

然后,我们只需要从Maven构建中调用此类。 我最初尝试将其创建为ant任务,并使用antrun插件运行它,但是它存在类路径和类加载器问题(找不到实体和persistence.xml)。 这就是为什么我使用exec-maven-plugin的原因,该插件在运行构建的同一JVM中调用该应用程序:

<plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.1</version><executions><execution><phase>${sql.generation.phase}</phase> <!-- this is process-classes in our case currently --><goals><goal>java</goal></goals></execution></executions><configuration><mainClass>com.yourcompany.util.JpaSchemaExport</mainClass><arguments><argument>core</argument><argument>${project.build.directory}/classes/schema.sql</argument><argument>true</argument><argument>true</argument></arguments></configuration>
</plugin>

然后,您可以使用sql-maven-plugin将schema.sql文件部署到目标数据库(您将需要由maven加载外部化的db属性,这由properties-maven-plugin完成)。

参考: 如何使用我们的JCG合作伙伴 Bozhidar Bozhanov (来自Bozho的技术博客)上的Hibernate 4,JPA和Maven生成模式创建脚本 。


翻译自: https://www.javacodegeeks.com/2012/07/schema-creation-script-with-hibernate-4.html

maven jpa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读取带空格字符串小结

1 &#xff0c;gets() 可以无限读取&#xff0c;以回车结束读取&#xff0c;C语言中的函数&#xff0c;在C中运行会产生bug。 如&#xff1a; #include <iostream> #include <cstdio> using namespace std; int main() { chara[50]; cin>>a; gets(a); cout&l…

计算机x线摄影的发展趋势,计算机X线摄影技术----CR 新进展

结构化存贮荧光体(针状成像板)(Structured Storage Phosphors(Needle ImagePlates))结构化荧光体&#xff0c;也就是各向异性物理结构&#xff0c;已经存在很久&#xff0c;且已得到广泛应用&#xff0c;比如在影像增强管中吸收X线&#xff0c;并将射线激励的可见光导入成像链的…

开发一个智能问答机器人(优化篇)

上一篇介绍了整个问答机器人的技术架构和特定&#xff0c;本篇着重说下 如何让机器人&#xff08;看起来&#xff09;更智能 输入联想 使用jquery.autosuggest.js实现的输入联想&#xff0c;在输入2个字后&#xff0c;在5000个问答中基于全文检索&#xff0c;检索10条记录&…

使用Java将项目插入DynamoDB表

在上一篇文章中&#xff0c;我们学习了如何使用Java创建DynamoDB表。 下一步是将项目插入到先前创建的DynamoDB表中。 请记住&#xff0c;对于插入操作&#xff0c;最基本的步骤是指定主键。 对于表用户&#xff0c;主键是属性电子邮件。 您可以根据需要添加任意数量的属性&am…

计算机vb操作题评分细则,上机考试的试题及评分标准.doc

上机考试的试题及评分标准上机题总分占40分&#xff0c;其中改错题占14分&#xff0c;编程题占26分。(1)改错题&#xff1a;题目中都是设3个错误点(在历年上机考题中也出现过只有2个错误点的试题)&#xff0c;一般分别是语法错误(如数组的声明、重复定义等略有难度的语法错误)、…

面试汇总

HTML部分 1.HTML5新特性&#xff0c;语义化 可以参考 https://blog.csdn.net/qq_26562641/article/details/54669288 2.浏览器的标准模式和怪异模式 可以参考 http://www.cnblogs.com/zzgyq/p/8630709.html 3. xhtml和html的区别 XHTML 元素必须被正确地嵌套…

64 合并排序数组

原题网址&#xff1a;http://www.lintcode.com/zh-cn/problem/merge-sorted-array/# 合并两个排序的整数数组A和B变成一个新的数组。 注意事项 你可以假设A具有足够的空间&#xff08;A数组的大小大于或等于mn&#xff09;去添加B中的元素。 您在真实的面试中是否遇到过这个题&…

Ios9 html5,ios9,html5_ios9下在浏览器中通过scheme打开app的问题,ios9,html5 - phpStudy

ios9下在浏览器中通过scheme打开app的问题ios9系统下&#xff0c;safari下通过iframe(scheme)的方式跳app&#xff0c;无法打开app&#xff0c;通过location.hrefscheme的方式倒是可以&#xff0c;不过在没有安装app时&#xff0c;这种方式可能会直接跳转到一个错误页面(无法打…

使用Spring Boot进行面向方面的编程

在上一篇文章中&#xff0c;我提供了一个有关如何通过使用ProxyFactoryBean并实现MethodBeforeAdvice接口在Spring实现宽高比定向的简单示例。 在此示例中&#xff0c;我们将学习如何通过使用Spring Boot和Aspect4j注释来实现方面方向。 让我们从gradle文件开始。 group com…

java中的单例模型

参考网址:http://www.runoob.com/design-pattern/singleton-pattern.html 1.目的:保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。(比如世界只有一个月亮,党只有一个主席) 2. 优点&#xff1a; 1、在内存里只有一个实例&#xff0c;减少了内存的开销&#x…

计算机电路基础张志良,计算机电路基础

图书简介配套资源&#xff1a;电子课件本书特色&#xff1a;★ 金牌作者编写&#xff0c;专门针对计算机专业设计教学内容★ 内容广、难度浅、适用面宽★ 配有《学习指导与习题解答》(ISBN 978-7- 111- 35112-2)本书配套资源&#xff0c;样书均可在本页下载申请&#xff0c;也可…

Java-变量函数 上

类的组成&#xff08;三部分&#xff09;全局变量&#xff08;成员变量&#xff09;和局部变量成员方法&#xff08;函数&#xff09;变量按照变量的数据类型分类基本数据类型 字符型 布尔 整型 浮点型引用数据类型 String 数组根据变量定义的位置不同&#xff08;或者…

计算机程序备份,将应用程序快照备份到计算机

Linux/UNIX 示例脚本创建一个 shell (.sh) 文件&#xff0c;在其中包含类似如下所示的脚本&#xff0c;以自动下载快照。如果密码中包含特殊字符&#xff0c;请参阅“处理特殊字符”。#!/bin/sh# Sample script to download and maintain 10 maintenance backups# Update the f…

跨站点脚本(xss)_跨站点脚本(XSS)和预防

跨站点脚本(xss)如OWASP网站&#xff08;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS&#xff09;&#xff09;所述&#xff0c;跨站点脚本&#xff08;XSS&#xff09;攻击的变种几乎是无限的。 在这里&#xff0c;我建议使用基于Servlet筛选器的解决方案来清…

ajax的请求参数详解以及前后台交互详解

function rejectSub(){//从隐藏域中拿到userIDvar userId $("input:hidden[nameuserId]").val();var flag;$.ajax({type : "POST",//请求方式有post&#xff0c;get请求方式&#xff0c;这里是post请求url:${base}/compactedExpert/qcVerificationCompact…

countdown软件测试死亡时间真假,countdown

countdown死亡倒计时真的假的?countdown这款软件是一款有电影衍生出来的产品&#xff0c;很多朋友都很好奇这个countdownapp测试死亡时间准不准&#xff0c;那么今天小编就为大家带来详细的介绍&#xff0c;感兴趣的朋友们一起来看看吧!这是一款在电影倒忌时中出现的时钟软件&…

Spring Boot和Spring数据JPA集成

如今&#xff0c;借助于Spring Boot和spring Data&#xff0c;spring和JPA集成已变得轻而易举。 我要设置一个PostgreSQL服务器 docker pull postgres #run the container docker run --name postgreslocal -e POSTGRES_PASSWORDpostgres -d postgres #get the ip docker ins…

专业软件 —— 硬件评测

1. 硬盘评测 crystaldiskinfo&#xff1a;CrystalDiskInfo – Crystal Dew Worldcrystaldiskmark&#xff1a;硬盘跑分&#xff0c;CrystalDiskMark – Crystal Dew World2. CPU 与 GPU CPU-ZGPU-Z转载于:https://www.cnblogs.com/mtcnn/p/9421010.html

桌面记事本软件测试工资,记事本的一个BUG

我们常用的小工具&#xff0c;系统中附件里的“记事本”工具&#xff0c;有个比较有意思的BUG&#xff0c;让我们按以下步骤来看看。1. 在开始菜单的附件里打开记事本2. 复制引号中的内容&#xff0c;粘贴到记事本里“AAAA BBB CCC DDDDD”3. 把它保存到桌面上&#xff0c;文件…

深度学习目标检测算法综述(论文和代码)

RCNN-→SPP Net-→ Fast RCNN-→ Faster RCNN-→ YOLO-→ SSD 思路是&#xff1a;a,生成候选框 b&#xff0c;CNN提取特征 c,分类网络 d,回归&#xff0c;位置精修(refine) RCNN: 论文: https://arxiv.org/pdf/1311.2524.pdf 源码: https://github.com/rbgirshick/rcnn 一些解读…