当前位置: 首页 > news >正文

德阳市网站建设_网站建设公司_前端工程师_seo优化

东莞网站建设咨询公,包装设计公司报价,备案公司网站建设方案书,sem竞价托管公司ddl hibernate不久前#xff0c;我必须使用内存数据库。 该活动与集成测试有关。 如您所知#xff0c;通常将内存数据库用于集成测试。 造成这种情况的原因有很多#xff1a;可移植性#xff0c;良好的环境基础结构#xff0c;高性能#xff0c;原始数据库的一致性。 问… ddl hibernate 不久前我必须使用内存数据库。 该活动与集成测试有关。 如您所知通常将内存数据库用于集成测试。 造成这种情况的原因有很多可移植性良好的环境基础结构高性能原始数据库的一致性。 问题在于将生产DDL架构压入测试内存数据库。 第一个是MySQL 第二个是HSQLDB 。 MySQL的语法不同于HSQL语法。 因此如果不进行适当的转换就不可能将MySQL表模式导入HSQLDB。 坦白说我已经花了很多时间在寻找一些解决方案这将有助于我在HSQL中导入MySQL DDL模式 。 结果不是我想要的那么好。 所有解决方案都是商业化的或非自动化的例如替换HSQL上所有MySQL特定的代码。 幸运的是我的项目使用Hibernate作为JPA实现。 所有实体都装饰有适当的Hibernate注释。 正如您将进一步看到的那样这对于MySQL模式的转换将非常有帮助。 Hibernate提供了基于DDL生成实体的机制反之亦然。 因此任何使用Hibernate注释修饰的实体都可以使用Hibernate支持的DB语言来表示为表模式。 这是一个解决我的问题的类 public class SchemaTranslator {private Configuration config null;public SchemaTranslator() {config new Configuration();}public SchemaTranslator setDialect(String dialect) {config.setProperty(AvailableSettings.DIALECT, dialect);return this;}/*** Method determines classes which will be used for DDL generation. * param annotatedClasses - entities annotated with Hibernate annotations.*/public SchemaTranslator addAnnotatedClasses(Class[] annotatedClasses) {for (Class clazz : annotatedClasses)config.addAnnotatedClass(clazz);return this;}/*** Method performs translation of entities in table schemas.* It generates CREATE and DELETE scripts for the Hibernate entities.* Current implementation involves usage of {link #write(FileOutputStream, String[], Formatter)} method.* param outputStream - stream will be used for *.sql file creation.* throws IOException*/public SchemaTranslator translate(FileOutputStream outputStream) throws IOException {Dialect requiredDialect Dialect.getDialect(config.getProperties());String[] query null;query config.generateDropSchemaScript(requiredDialect);write(outputStream, query, FormatStyle.DDL.getFormatter());query config.generateSchemaCreationScript(requiredDialect);write(outputStream, query, FormatStyle.DDL.getFormatter());return this;}/*** Method writes line by line DDL scripts in the output stream.* Also each line logs in the console.* throws IOException*/private void write(FileOutputStream outputStream, String[] lines, Formatter formatter) throws IOException {String tempStr null;for (String line : lines) {tempStr formatter.format(line);;System.out.println(tempStr);outputStream.write(tempStr.getBytes());}}public static void main(String[] args) throws IOException {SchemaTranslator translator new SchemaTranslator();Class[] entityClasses {Smartphone.class};translator.setDialect(org.hibernate.dialect.HSQLDialect).addAnnotatedClasses(entityClasses).translate(new FileOutputStream(new File(db-schema.sql)));}} 上面的代码非常冗长但我对此进行了评论。 因此我希望它或多或少容易理解。 整个应用程序的代码可以在GitHub上找到 。 SchemaTranslator类在项目结构中具有以下位置 / src / test / java / com / mobapp / test / util / 借助此类您可以将您的实体采用到Hibernate支持的任何必需数据库中。 祝好运 参考 Hibernate我们的JCG合作伙伴 Alexey Zvolinskiy在Fruzenshtein的注释博客中生成了DDL Schema 。 翻译自: https://www.javacodegeeks.com/2014/01/hibernate-ddl-schema-generation.htmlddl hibernate
http://www.lebaoying.cn/news/132913.html

相关文章:

  • 网站建设时关键词要怎么选呢qq在线登录聊天
  • 西安seo网站设计公司河南广告制作公司网站
  • 互联网公司有国企吗汕尾市企业网站seo点击软件
  • 有哪些做伦敦金的网站如何搭建aspx网站
  • 绵阳市住房和城乡建设局网站美食鉴赏国内网站
  • wordpress 嵌入网页电子商务网站优化方案
  • 台州市建设监理协会网站wordpress注入docker
  • ppt免费模板哪个网站好丹阳网站建设方案
  • 建设小学瓯江校区网站地图网站抓取
  • 着陆页设计网站国内wordpress 7牛云 配置
  • php网站建设案例一台云服务器可以做多少个网站
  • 整人网站建设华为网站搭建
  • 在本地搭建多个网站wordpress 程序
  • 做网站定金是多少青州网站定制
  • 网站关键词怎样修改网站的注册页面怎么做
  • 中山网站制作费用wordpress 移动顶部菜单
  • 晋城市住房和城乡建设局官方网站免费的素材库视频无水印
  • 网站的开发包括哪两项网站文字不能编辑器
  • 仿起点小说网站开发拍摄制作宣传片企业
  • 网站建设合同doc苏州建站
  • 房地产如何做网站推广什么网站可以做ppt模板
  • 在线编辑图片加字单一产品网站如何做seo
  • 响应适网站开发网站IcP在哪查
  • jsp两种网站开发模式沧州企业网站专业定制
  • 做一份网站的步zou网站即将上线 模板
  • 做点阵纸的网站内容型网站的运营
  • 新开传奇网站999新服网长春专业做网站公司哪家好
  • 石家庄网站建设方案推广济南小程序制作公司
  • 比较出名的网站域名商业网站的建设与制作
  • WordPress配置全站加速cdn南昌装修公司