我怎么可以测试是否persistence.xml 已发现或没有?
-
05-07-2019 - |
题
我需要测试一些东西在一个项目,该项目已经由其他人,但是新的给我。他们使用的休眠作为访问用户的执行。
我得到了一个虚拟机在这一切都设置,但是当我想要开始任何Testclient(小控制台节目,没有Unittesting).我总是得到同样的错误。
Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
...
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:409)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
... 7 more
该项目的结构看起来是这样的。奇怪的是我已经有了这件事情的运行(在我的summerholdays.
|-- bin
|-- lib
|-- rsc
| |-- META-INF
| | `-- persistence.xml
|-- src
| |-- org
| | | ... all sourcecode below
`-- target
我试图缩小该问题,因此,我已删除整个META-INF文件夹。仍然同样的错误。这不是我期望和导致我相信persistence.xml 是找不到的。我不知道为什么他们把元INF在rsc文件夹(正如我所提到的,这不是我的项目)但是,当我把它放在根文件或来源的文件夹中的错误仍然存在。
我怎能确保persistence.xml 已经发现了什么?是否有任何文件META-INF应放置。(为什么是这个错误消息所以误导的?)
解决方案
这取决于你的建立过程编制文件/罐子将结束,当开始测试的应用程序。我敢肯定,你不会开始从src文件夹。你会得到一些建立或测试文件夹以运行的应用程序。然后夹结构通常应该是这样的:
|- build
|- classes
|- org (packages)
|- ...
|- META-INF
|- persistence.xml
|- ... (other config files)
你也可以检查这个 链接.
不隶属于 StackOverflow