当前位置: 首页 > 面试题库 >

如何在JPA persistence.xml中使用Hibernate SchemaUpdate类?

佴阳曦
2023-03-14
问题内容

我有一个使用SchemaUpdate的主要方法,可以在控制台上显示要更改/创建的表,并且在我的Hibernate项目中可以正常工作:

 public static void main(String[] args) throws IOException {
  //first we prepare the configuration
  Properties hibProps = new Properties();
  hibProps.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("jbbconfigs.properties"));
  Configuration cfg = new AnnotationConfiguration();
  cfg.configure("/hibernate.cfg.xml").addProperties(hibProps);

  //We create the SchemaUpdate thanks to the configs
  SchemaUpdate schemaUpdate = new SchemaUpdate(cfg);


  //The update is executed in script mode only
  schemaUpdate.execute(true, false);
  ...

我想在JPA项目中重用此代码,它没有hibernate.cfg.xml文件(也没有.properties文件),但是有一个persistence.xml文件(如JPA规范指定的在META-
INF目录中自动检测到) 。

我尝试了这种过于简单的调整,

Configuration cfg = new AnnotationConfiguration();
cfg.configure();

但由于该异常而失败。

Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml not found

有人做过吗?谢谢。


问题答案:

卡里姆(Kariem)走在正确的道路上,但让我尝试澄清一下。

假设您具有普通的JPA标准配置,除了classpath上的Hibernate
jars外,没有任何Hibernate特定的配置。如果您以J2SE引导模式运行,那么您已经有一些类似于Java或Spring配置等的代码:

Map<String, Object> props = getJPAProperties();
EntityManagerFactory emf = 
    Persistence.createEntityManagerFactory("persistence-unit-name", props);

要运行SchemaUpdate,只需使用以下代码即可:

Map<String, Object> props = getJPAProperties();
Ejb3Configuration conf = 
    new Ejb3Configuration().configure("persistence-unit-name", props);
new SchemaUpdate(conf.getHibernateConfiguration()).execute(true, false);

我不确定这在容器环境中如何运行,但是在简单的J2SE或Spring类型的配置中,仅此而已。



 类似资料:
  • 我使用Google Guice Persist(JPA)来操作数据。我的web应用程序在Jetty服务器上。以下是我的坚持。xml: 我的应用程序空闲时出现以下错误: [c3p0]发生了另一个错误[com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收的最后一个数据包是49492938毫秒前。成功发送到服务器的最后一个数据包

  • 问题内容: 我已经用C ++实现了一个类。我想将其与Python一起使用。 请提出逐步方法,并详细说明每个步骤。 这样的东西 现在,在Python中 请提出建议。我该怎么办?注意:我想知道手动的方法。我不希望任何第三方库依赖。 问题答案: 查看Boost.Python。这是一个用C ++编写python模块的库。 还要研究SWIG,它也可以处理其他脚本语言的模块。我过去曾使用它来为我的课程编写模块

  • 我有以下三个类:我尝试制作1和2的例程,并使用tjava调用主类和来自1和2的方法,但我无法获取这些方法。 1) 我在Talend中为上面的代码(1)和2)做了例程,然后用tjava调用方法,但是不能这样做。我还尝试对所有的tjava都使用,并且在每个tjava上都做了onSubjob ok。我如何在Talend中调用这些类并调用方法呢?

  • 问题内容: 我想使用Android Studio使用Gradle构建工具开发应用程序。我无法在上插入存储库和库。我的文件如下: 如何在项目中添加OpenCV? 问题答案: 您可以在Android Studio中轻松完成此操作。 请按照以下步骤将Open CV作为库添加到您的项目中。 libraries在项目主目录下创建一个文件夹。例如,如果您的项目是OpenCVExamples,则将创建一个Ope

  • 我想使用Android Studio开发一个应用程序使用Gradle构建工具。我无法在上插入OpenCV repo和库。我的文件如下所示: 我如何在我的项目中添加OpenCV?

  • 嗨, 我正在创建Rest API,这是我的问题。例如,我有这样的@Query。 如何从我的类OrderDto中获取值并将其发送到@查询? 我还有其他问题,例如,我只发送一个单词,在这里我只需要使用: orderId来使用incoming String,但不知道如何将其用于incoming类。有什么想法吗? 我只想用同样的例子,但是从OrderDto到userDto这样的类。getCustomer

  • 问题内容: 我想对英语句子加标签,并进行一些处理。我想使用openNLP。我已经安装了 当我执行命令时 它提供输出POSTagging Text.txt中的输入 我希望它安装正确吗? 现在如何从Java应用程序内部进行此POStagging?我已将openNLPtools,jwnl,maxent jar添加到项目中,但是如何调用POStagging? 问题答案: 这是我放在一起的一些(旧)示例代码

  • 问题内容: 我必须在GWT入口点使用java.util.Calendar,但是在运行应用程序时出现错误,这是因为GWT无法找到源代码,无论如何我都可以解决此问题。 提前致谢!!! 问题答案: java.util.Calendar不是模拟的类。您可以在此处找到仿真类的列表: http://code.google.com/webtoolkit/doc/latest/RefJreEmulation.ht