【问题标题】:How to override the persistent xml file in junit class which will be used in other java class?如何覆盖junit类中将在其他java类中使用的持久xml文件?
【发布时间】:2023-03-15 18:29:01
【问题描述】:

我有一个 junit 测试类,我必须在其中指定新的持久单元名称,假设说“B”,其属性连接到数据库。从这个测试类中,我调用了一个 JPA REST 服务,该服务又调用了一个业务逻辑 java 类。在这个业务逻辑类中,我用持久化 xml 单元编写了 entitymanager,假设说“A”。

这里的问题是如何在junit测试类中指定持久单元B,以便业务类使用持久单元B而不是A?

【问题讨论】:

  • persistence-unit 在文件 persistence.xml 中指定,而不是在类中。更好地定义你的意思
  • 我们可以像这样在类中指定一个新的持久性单元:stackoverflow.com/a/18733128 我已经检查过了,但对我不起作用。请理解所问的问题。
  • 那不是“新的持久性单元”。那是具有一些额外属性的 SAME 持久性单元,这些属性覆盖了 persistence.xml 中指定的属性。

标签: jpa junit4 persistence.xml


【解决方案1】:

你可以覆盖你的

src/main/resources/META-INF/persistence.xml

src\test\resources\META-INF\persistence.xml

【讨论】:

  • 我见过这个,但问题是我的 junit 类采用 src/main/resources/META-INF/persistence.xml 而不是 src\test\resources\META-INF\persistence.xml,我想是因为我需要在某处指定此路径。
  • 您使用哪个框架进行 JPA 单元测试?只有junit?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多