2016-02-17 4 views
0

Это мой первый раз, используя Hiberante.Как создать сеанс Hibernate без файла hiberante.cfg.xml?

Я пытаюсь создать Hibernate session в моем приложении, используя следующие:

Session session = HiberanteUtil.getSessionFactory().openSession(); 

Это дает мне эту ошибку:

org.hibernate.HibernateException: /hibernate.cfg.xml not found 

Однако я не имею в hibernate.cfg.xml файл в моем проекте ,

Как создать сеанс без с этим файлом?

+0

Почему вы не хотите создавать этот файл? Просто создайте его, если он делает Hibernate счастливым ... – ZeroOne

+0

Я хочу установить спящий режим, используя только аннотации, то есть в этом руководстве: http://www.concretepage.com/hibernate/configure_hibernate_without_hibernate_cfg_xml – java123999

ответ

2

самого простой способ настройки Hibernate 4 или Hibernate 5

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 

Hibernate считывает конфигурацию из hibernate.cfg.xml и hibernate.properties.

Не следует звонить configure(), если вы не хотите читать hibernate.cfg.xml. С добавлением аннотированного класса

SessionFactory sessionFactory = new Configuration() 
    .addAnnotatedClass(User.class).buildSessionFactory(); 
1
import java.util.Properties; 
import org.hibernate.HibernateException; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.AnnotationConfiguration; 
import com.concretepage.persistence.User; 

public class HibernateUtil { 
    private static final SessionFactory concreteSessionFactory; 
    static { 
     try { 
      Properties prop= new Properties(); 
      prop.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/hibernate"); 
      prop.setProperty("hibernate.connection.username", "root"); 
      prop.setProperty("hibernate.connection.password", ""); 
      prop.setProperty("dialect", "org.hibernate.dialect.MySQLDialect"); 

      concreteSessionFactory = new AnnotationConfiguration() 
      .addPackage("com.concretepage.persistence") 
        .addProperties(prop) 
        .addAnnotatedClass(User.class) 
        .buildSessionFactory(); 
     } catch (Throwable ex) { 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 
    public static Session getSession() 
      throws HibernateException { 
     return concreteSessionFactory.openSession(); 
    } 

    public static void main(String... args){ 
     Session session=getSession(); 
     session.beginTransaction(); 
     User user=(User)session.get(User.class, new Integer(1)); 
     System.out.println(user.getName()); 
     session.close(); 
    } 
    } 
+0

Спасибо, вы порекомендовали этот путь через другой hibernate.cfg.xml? – java123999

+0

Я смущен, что это означает: import com.concretepage.persistence.User; ? – java123999

+0

@ java123999 Это ваш постоянный класс. Вы можете использовать любой класс для этого с аннотациями @ @ Entity и '@ Table'. –

Смежные вопросы