2016-03-28 17 views
0

Begann zu lernen Hibernate. Alles im Tutorial tun, aber wenn ich versuche, einfach zu wählen, passiert nichts. Ich verstehe nicht, was das Problem ist.Ruhezustand mit Abfragen arbeiten

Logs:

мар 28, 2016 12:54:44 PM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {5.1.0.Final} 
мар 28, 2016 12:54:44 PM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
мар 28, 2016 12:54:44 PM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
мар 28, 2016 12:54:45 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
мар 28, 2016 12:54:45 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
мар 28, 2016 12:54:45 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/taskboard] 
мар 28, 2016 12:54:45 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001001: Connection properties: {user=root, password=****} 
мар 28, 2016 12:54:45 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001003: Autocommit mode: false 
мар 28, 2016 12:54:45 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> 
INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 
мар 28, 2016 12:54:45 PM org.hibernate.dialect.Dialect <init> 
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 
мар 28, 2016 12:54:45 PM org.hibernate.validator.internal.util.Version <clinit> 
INFO: HV000001: Hibernate Validator 5.2.4.Final 
мар 28, 2016 12:54:45 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop 
INFO: HHH10001008: Cleaning up connection pool [jdbc:mysql://localhost:3306/taskboard] 

User.java

@Entity 
@Table(name="Users") 
public class User { 

@Id 
@Column(name="id_user") 
private Long id; 

@Column(name="first_name") 
private String firstName; 

@Column(name="last_name") 
private String lastName; 

@Column(name="login") 
private String login; 

@Column(name="password") 
private String password; 
}//get&set 

Main.java

SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); 
    Session session = sessionFactory.openSession(); 

    List<User> users = null; 

    try { 
    session.beginTransaction(); 

    Criteria criteria = session.createCriteria(User.class); 
    users = criteria.list(); 

    session.getTransaction().commit(); 

    } catch (Exception e) { 
     session.getTransaction().rollback(); 
     e.printStackTrace(); 
    } finally { 
     session.close(); 
     sessionFactory.close(); 
    } 

    for (User user: users) { 
     System.out.println(user.toString()); 
    } 

hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="connection.url">jdbc:mysql://localhost:3306/taskboard</property> 
    <property name="connection.username">root</property> 
    <property name="connection.password">1234</property> 
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="show_sql">true</property> 
    <property name="hbm2ddl.auto">update</property> 

    <mapping class="User" /> 
</session-factory> 
</hibernate-configuration> 

HibernateUtil.java

public class HibernateUtil { 
private static SessionFactory sessionFactory = null; 

static { 
    Configuration cfg = new Configuration().configure(); 
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder() 
      .applySettings(cfg.getProperties()); 

    sessionFactory = cfg.buildSessionFactory(builder.build()); 
} 

public static SessionFactory getSessionFactory(){ 
    return sessionFactory; 
    } 
} 
+0

put, users.size() in System.out.println() vor for Schleife, und prüfen, was Sie bekommen? –

+0

Bitte erklären Sie, was Sie mit "nichts passiert" meinen? – Bikku

+0

was meinst du mit nichts passiert? Keine Auswahlabfrage wird in Protokollen angezeigt. –

Antwort

0

Soweit ich mich erinnere, unterstützt die neuere Version von Hibernate <mapping class= .../> in der Ruhezustandskonfigurationsdatei nicht mehr.

Können Sie das entfernen und stattdessen mit

cfg.addAnnotatedClass(User.class) in Ihrem HibernateUtil statischen Block versuchen.

Auf einer anderen Note, können Sie Art und Weise mit den neuesten Ansatz für den Bau der sessionFactory als Configuration betrachten wollen veraltet. Weitere Informationen finden Sie im Abschnitt Native Bootstrapping.

0

Kann nichts in der Datenbank sein für Benutzer einige Daten table.First ein. Dann überprüfe.

+0

Die Tabelle enthält Daten. – Jaive

+0

Dies ist keine Antwort, Sie könnten dies als Kommentar setzen! –