【问题标题】:hibernate configuration file and SessionFactoryhibernate配置文件和SessionFactory
【发布时间】:2015-05-06 12:06:32
【问题描述】:

我目前正在努力找出为什么会收到此错误消息。 我是第一次使用休眠,所以我可能配置错误。

IMO 这可能是这三个问题之一。

  • 我的 hibernate.cfg.xml 文件位于错误的“位置”,但我没有更改类路径,并且 hibernet 文件位于 src 文件夹中。
  • 我在创建新 SessionFactory SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 的行处收到警告 我可以从buildSessionFactory()返回 2 种类型

    1. 会话工厂
    2. 配置

当然我使用了 SessionFactory 但也许我忽略了一些东西。

package hibernate;
 import java.util.Date;

 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.cfg.Configuration;

 import persistencelayer.*;

 public class HibernateTest {

 public static void main(String[] args) {

    TestUserDetails user2 = new TestUserDetails();
    user2.setUserId(1); 
    user2.setUserName("First User");
    user2.setAddress("First User's address");
    user2.setJoinedDate(new Date());
    user2.setDescription("Description of the user goes here");

    try {
    //SessionFactory wird erzeugt, mit der Konfiguration von Hibernate
    SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
    Session session = sessionFactory.openSession();
    session.beginTransaction();

 //     session.save(user);

    session.save(user2);
    session.getTransaction().commit();
    } catch (Exception e) {
        System.out.println("Fehler beim erstellen der SessionFactory");
    }



}

}
`
  • 也可能是我的 hibernate.cfg.xml 文件配置错误。出于安全原因,我将删除用户名、密码和主机。

自 google 以来,我一直在尝试寻找解决方案,但它根本不起作用。 顺便说一句,我使用 Oracle 作为数据库。

建议将不胜感激。提前谢谢你,很抱歉这么长的帖子:)。

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>
    <!-- Database connection settings -->
    <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.connection.url">jdbc:oracle:thin:@host:port:ssid:</property>
    <property name="hibernate.connection.username">name</property>
    <property name="hibernate.connection.password">password</property>

    <!-- JDBC connection pool (use the built-in) -->
    <property name="hibernate.connection.pool_size">1</property>

    <!-- SQL dialect -->
    <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

    <!-- Disable the second-level cache -->
    <property name="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="hibernate.show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hibernate.hbm2ddl.auto">create</property>

    <!-- Names the annotated entity class -->
    <mapping class="persistencelayer.Project"/>
    <mapping class="persistencelayer.User"/>
    <!-- <mapping class="persistencelayer.Employer"/>
    <mapping class="persistencelayer.IndividualTest"/>
    <mapping class="persistencelayer.ObjectType"/>
    <mapping class="persistencelayer.TestChamber"/>
    <mapping class="persistencelayer.TestMethod"/>
    <mapping class="persistencelayer.TestUserDetails"/> -->


</session-factory>

【问题讨论】:

  • 请附上你的错误信息,我的意思是堆栈跟踪!!!

标签: java hibernate oracle11g sessionfactory hibernate.cfg.xml


【解决方案1】:

我发现问题出在 hibernate.cfg.xml 文件中。

我从官方的休眠 4.3.9 文件中复制了它。 这部分是错误的。

<property name="hibernate.connection.password" />password</property>

在要输入密码的左侧不应有“/”。

【讨论】:

  • 如果你认为你已经回答了你的问题,那就接受吧。
  • 只需点击您的答案分数下方的勾号。
  • 如果我有关于同一主题的新问题,我可以在这里发布它作为答案吗?因为这就是我所做的,但是如果我检查我对旧问题的回答,没有人会认识到我有一个新问题,对吗?我必须做一个新话题吗?对不起,我是 stackoverflow 的新手 :)
  • 不,你错了 :) 你必须提出一个新问题,这样它才会出现在新问题选项卡中的第一个问题中。但要避免问已经有答案的重复问题。
猜你喜欢
  • 2015-12-31
  • 2013-01-26
  • 1970-01-01
  • 2017-02-10
  • 1970-01-01
  • 2011-01-29
  • 2014-07-28
  • 1970-01-01
  • 2012-11-19
相关资源
最近更新 更多