Java Hibernate-访问stax流时出错-使用Hibernate.properties

Java Hibernate-访问stax流时出错-使用Hibernate.properties,java,hibernate,jpa,configuration,Java,Hibernate,Jpa,Configuration,我得到了这个错误: 信息:HH000205:从资源hibernate加载的属性。属性:{hibernate.connection.driver\u class=oracle.jdbc.driver.OracleDriver,hibernate.dial=org.hibernate.dial.Oracle8iDialect,hibernate.connection.password=***,hibernate.connection.username=myUserName,hibernate.con

我得到了这个错误:

信息:HH000205:从资源hibernate加载的属性。属性:{hibernate.connection.driver\u class=oracle.jdbc.driver.OracleDriver,hibernate.dial=org.hibernate.dial.Oracle8iDialect,hibernate.connection.password=***,hibernate.connection.username=myUserName,hibernate.connection.url=jdbc:oracle:thin:@//myHost:1521/myid,hibernate.bytecode.use\u reflection\u optimizer=false,show\u sql=true}

org.hibernate.HibernateException:访问stax流时出错 位于org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:107) 位于org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65) 位于org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:57) 位于org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:165) 位于org.hibernate.cfg.Configuration.configure(Configuration.java:258) 在gradletests.HibernateUtils.getSessionFactory(HibernateUtils.java:15) 在gradletests.MainTest.main(MainTest.java:14) 原因:javax.xml.stream.XMLStreamException:ParseError位于[row,col]:[1,1] 消息:prolog中不允许包含内容。 位于java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652) 位于java.xml/com.sun.xml.internal.stream.XMLEventReaderImpl.peek(XMLEventReaderImpl.java:277) 位于org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:103) …还有6个

尝试打开这样的会话时:

private static SessionFactory factory;
private static boolean isInitialized = false;
public static synchronized SessionFactory getSessionFactory() {
    if (!isInitialized) {
        factory = new Configuration().configure("hibernate.properties").
                addAnnotatedClass(Myclass.class).
                buildSessionFactory();
        isInitialized = true;
    }
    return factory;
}
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@//myHost:1521/mySID
hibernate.connection.username=myUserName
hibernate.connection.password=myPassword
hibernate.dialect=org.hibernate.dialect.Oracle8iDialect
show_sql=true
显然,我的属性文件是关于输出的:

信息:hh000205:从资源hibernate加载的属性。属性:{hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver,hibernate.dialen=org.hibernate.dialent.Oracle8iDialect, hibernate.connection.password=*****, hibernate.connection.username=myUserName, hibernate.connection.url=jdbc:oracle:thin:@//myHost:1521/myid,hibernate.bytecode.use\u reflection\u optimizer=false, show_sql=true}

hibernate.properties如下所示:

private static SessionFactory factory;
private static boolean isInitialized = false;
public static synchronized SessionFactory getSessionFactory() {
    if (!isInitialized) {
        factory = new Configuration().configure("hibernate.properties").
                addAnnotatedClass(Myclass.class).
                buildSessionFactory();
        isInitialized = true;
    }
    return factory;
}
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@//myHost:1521/mySID
hibernate.connection.username=myUserName
hibernate.connection.password=myPassword
hibernate.dialect=org.hibernate.dialect.Oracle8iDialect
show_sql=true
我的build.gradle导入这些:

implementation group: 'org.springframework',        name: 'spring-context',     version: '5.1.4.RELEASE'
implementation group: 'org.springframework',        name: 'spring-orm',         version: '5.1.4.RELEASE'
implementation group: 'org.springframework.data',   name: 'spring-data-jpa',    version: '2.1.4.RELEASE'
implementation group: 'org.hibernate',              name: 'hibernate-core',     version: '5.4.1.Final'
implementation group: 'com.oracle.database.jdbc',   name: 'ojdbc8',             version: '21.1.0.0'
错误的第二部分:

原因:javax.xml.stream.XMLStreamException:ParseError at[row,col]:[1,1]消息:prolog.at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652)java.xml/com.sun.internal.stream.XMLEventReaderImpl.peek(XMLEventReaderImpl.java:277)位于org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:103)…6更多信息

是指一个文件的行和列,它是hibernate.properties,我知道它,因为如果我在文件的开头添加一个返回,它的结果是行2和列1,而不是1,1

我不明白,因为它似乎第一次正确读取了文件,然后崩溃了,就像它在等待xml格式一样


我以为我没有在我的类中正确加载属性文件,但我没有找到任何关于如何加载它的信息。有什么想法吗?

这个
hibernate.properties
文件是自动应用的,你不需要加载它。除此之外,如果你查看
配置#配置
方法的Java文档,你会看到它需要XML文件的路径。如果要加载其他属性,则必须使用
properties\load
添加这些属性,并使用方法
配置#mergeProperties

添加它们。显然,我必须定义一个XML文件。虽然可以避免这些属性,但我最终决定使用它们而不是p即使是一个讨厌他们的文件…谢谢你的时间和我的时间来答复抱歉。