我找不到我的hibernate.cfg.xml文件的错误。
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
<session-factory>
- <!-- Database connection settings
-->
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2://localhost:1527/hibernatedb</property>
<property name="connection.username">h2</property>
<property name="connection.password" />
- <!-- JDBC connection pool (use the built-in)
-->
<property name="connection.pool_size">1</property>
- <!-- Disable the second-level cache
-->
<property name="cache.provider_class">org.hibernate.cache.internal.CollectionCacheInvalidator
</property>
- <!-- Echo all executed SQL to stdout
-->
<property name="show_sql">true</property>
- <!-- Drop and re-create the database schema on startup
-->
<property name="hbm2ddl.auto">create</property>
- <!-- SQL dialect
-->
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
- <!-- Names the annotated entity class
-->
<mapping class="firsthibernateproj.UserDetails" />
</session-factory>
</hibernate-configuration>
这是我使用的课程:
public class HibernateTest {
private static Object configuration;
public static void main(String[] args) {
UserDetails user = new UserDetails();
user.setUserId(1);
user.setUserName("First User");
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().
applySettings(configuration.getProperties());
SessionFactory factory = configuration.buildSessionFactory(builder.build());
Session session = factory.openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
}
}
检查了xml文件,没有语法错误。
任何想法如何解决这个问题?
答案 0 :(得分:4)
如果不按顺序创建配置文件,则会出现此问题 第一个列表属性然后映射,最后缓存。
答案 1 :(得分:1)
复制到我的项目的文件也会报告相同的错误,但是当删除每个注释之前的-
个字符时,错误就会消失。您是否从某些格式化xml的应用程序中复制了内容?例如Internet Explorer执行此操作
编辑:)
试试这个
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
<session-factory>
<!-- Database connection settings
-->
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2://localhost:1527/hibernatedb</property>
<property name="connection.username">h2</property>
<property name="connection.password" />
<!-- JDBC connection pool (use the built-in)
-->
<property name="connection.pool_size">1</property>
<!-- Disable the second-level cache
-->
<property name="cache.provider_class">org.hibernate.cache.internal.CollectionCacheInvalidator
</property>
<!-- Echo all executed SQL to stdout
-->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup
-->
<property name="hbm2ddl.auto">create</property>
<!-- SQL dialect
-->
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<!-- Names the annotated entity class
-->
<mapping class="firsthibernateproj.UserDetails" />
</session-factory>
</hibernate-configuration>
答案 2 :(得分:1)
我从同样的问题中解决了。但是我已经通过在序列中排列所有xml标签来解决这个问题。
答案 3 :(得分:0)
如果您使用错误的(即与目标文件的编码不匹配)编码从Internet复制源代码,则会出现此问题。如果你覆盖每一个空格,行返回,每个字符 - 一切都是手工操作,你的文件就可以了。
或者您也可以将代码粘贴到“愚蠢”编辑器中,标记全部并再次复制。这也可以解决问题(未经测试)。
答案 4 :(得分:0)
我有同样的恐惧。搜索并重新部署约一个小时后。事实证明,我错误地在配置文件中的某处键入了“Q”,但却看不到它。 因此,请仔细检查您的文件,您必须拼写错误或键入某些字符。
答案 5 :(得分:0)
我也遇到过同样的错误。我发现我在hibernate.cfg.xml中编写了一个描述行,并且我没有对此进行“评论”。
似乎你也犯了同样的错误。我在你的conf文件中的每个评论之前都看到了一个附加的连字符。“
- <!-- JDBC connection pool (use the built-in)
-->
“
它应该是“
<!-- JDBC connection pool (use the built-in)
-->
“
这是我猜的唯一错误