java - 数据库模式不是在 EAR 应用程序中生成的

标签 java hibernate jpa java-ee-6 ear

我在 EAR 应用程序中有这样的场景,其结构如下:

  • 项目
    • 数据
    • 耳朵
    • 实体
      • 元信息
        • 持久性.xml
    • 业务
    • 网络

实体文件夹中包含所有实体类和一个 persistence.xml,其中 hibernate.hbm2ddl.auto 属性设置为创建。当我部署关于实体的 jar 时,会生成数据库,但当我部署耳朵时,数据库不会生成。请问有人可以告诉我为什么会发生这种情况以及解决方法吗?

最佳答案

在您的 EAR 项目中,您必须有一个 META-INF/application.xml 文件,其中包含实体 jar 文件:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" id="Application_ID" version="6">
  <display-name>MY_ear</display-name>
  <module>
    <ejb>ENTITY.jar</ejb><!--change the name accordingly-->
  </module>
</application>

关于java - 数据库模式不是在 EAR 应用程序中生成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729755/

相关文章:

Java,在任何方向循环遍历二维数组

hibernate - JPA/Hibernate 在 EJB/Seam 环境中提交时不发出 UPDATE

java - 使用 Spring 时如何手动取消 JPA 或 Hibernate 事务

java - Hibernate + Json + 字符串数组

java - QueryDsl,结合标准 JPA 和 Hibernate 的类级 @Where 注释?

java - ElasticSearch 抛出 "OutOfMemoryError [unable to create new native thread]"

java - Hadoop 自定义可写

java - 具有多种压缩方法的 zip 的单一 Java 实现

java - 使用 @ManyToMany 关联连接三个表

java - 生成数据库错误以进行异常处理的方法