Began to master Hibernate . I wrote a program, but at startup the result is not displayed in the console, but only such a log:
"C:\Program Files\Java\jdk1.8.0_77\bin\java" -Didea.launcher.port=7532 "- Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 15.0.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_77\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\rt.jar;E:\_work\java\test2LS\target\classes; C:\Users\emina\.m2\repository\com\h2database\h2\1.4.191\h2-1.4.191.jar; C:\Users\emina\.m2\repository\org\hibernate\hibernate-core\5.1.0.Final\hibernate-core- 5.1.0.Final.jar;C:\Users\emina\.m2\repository\org\jboss\logging\jboss- logging\3.3.0.Final\jboss-logging- 3.3.0.Final.jar;C:\Users\emina\.m2\repository\org\hibernate\javax\persistence\hi bernate-jpa-2.1-api\1.0.0.Final\hibernate-jpa-2.1-api- 1.0.0.Final.jar;C:\Users\emina\.m2\repository\org\javassist\javassist\3.20.0- GA\javassist-3.20.0- GA.jar;C:\Users\emina\.m2\repository\antlr\antlr\2.7.7\antlr- 2.7.7.jar;C:\Users\emina\.m2\repository\org\apache\geronimo\specs\geronimo- jta_1.1_spec\1.1.1\geronimo-jta_1.1_spec- 1.1.1.jar;C:\Users\emina\.m2\repository\org\jboss\jandex\2.0.0.Final\jandex- 2.0.0.Final.jar;C:\Users\emina\.m2\repository\com\fasterxml\classmate\1.3.0\clas smate-1.3.0.jar;C:\Users\emina\.m2\repository\dom4j\dom4j\1.6.1\dom4j- 1.6.1.jar;C:\Users\emina\.m2\repository\xml-apis\xml-apis\1.0.b2\xml-apis- 1.0.b2.jar;C:\Users\emina\.m2\repository\org\hibernate\common\hibernate- commons-annotations\5.0.1.Final\hibernate-commons-annotations- 5.0.1.Final.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 15.0.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main апр 18, 2016 10:39:46 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.1.0.Final} апр 18, 2016 10:39:46 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found апр 18, 2016 10:39:46 AM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist апр 18, 2016 10:39:47 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} апр 18, 2016 10:39:47 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) апр 18, 2016 10:39:47 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:~/test] апр 18, 2016 10:39:47 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=sa, password=****} апр 18, 2016 10:39:47 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false апр 18, 2016 10:39:47 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 20 (min=1) апр 18, 2016 10:39:48 AM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect апр 18, 2016 10:39:49 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:~/test] Process finished with exit code 0 In the Main.java file at the end, the output is in foreach , but does not output anything, either via getters or through the overridden toString()
The project structure is as follows:
/src /main /java FileStatistic.java HibernateUtil.java LineStatistic.java Main.java /resources fileStatistic.cfg.xml hibernate.cfg.xml lineStatistic.cfg.xml /test pom.xml The pom.xml file itself :
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>aliiev.emin</groupId> <artifactId>test2LS</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.191</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.1.0.Final</version> </dependency> </dependencies> File 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="hibernate.connection.driver_class">org.h2.Driver</property> <property name="hibernate.connection.url">jdbc:h2:~/test</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password"></property> <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property> <property name="show_sql">true</property> <property name = "hbm2ddl.auto">validate</property> <mapping resource="fileStatistic.cfg.xml"/> <mapping resource="lineStatistic.cfg.xml"/> </session-factory> </hibernate-configuration> File fileStatistic.cfg.xml :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="FileStatistic" table="FILE_STATISTIC"> <id name="idFile" column="ID_FILE"> <generator class="select"/> </id> <property name="maxFileWord" column="MAX_FILE_WORD"/> <property name="minFileWord" column="MIN_FILE_WORD"/> <property name="avgFileWord" column="AVG_FILE_WORD"/> <property name="avgFileLineLength" column="AVG_LINE_LENGTH"/> <set name="lineStatistics" table="LINESTATISTIC"> <key> <column name="ID_FILE"/> </key> <one-to-many class="LineStatistic"/> </set> </class> </hibernate-mapping> File lineStatistic.cfg.xml :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="LineStatistic" table="LINE_STATISTIC"> <id name="idLine" column="ID_LINE"> <generator class="select"/> </id> <property name="maxWord" column="MAX_WORD"/> <property name="minWord" column="MIN_WORD"/> <property name="avgWord" column="AVG_WORD"/> <property name="lineLength" column="LINE_LENGTH"/> <many-to-one name="fileStatistic" class="FileStatistic"> <column name="ID_FILE"/> </many-to-one> </class> </hibernate-mapping> HibernateUtil.java file:
import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; 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; } } File Main.java :
import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.SessionFactory; import java.util.List; public class Main { public static void main(String[] args) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); List<FileStatistic> fileStatistic = null; try { session.beginTransaction(); Criteria criteria = session.createCriteria(FileStatistic.class); fileStatistic = criteria.list(); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); e.printStackTrace(); } finally { session.close(); sessionFactory.close(); } for (FileStatistic fStatistic:fileStatistic) { System.out.println(fStatistic.toString()); } } }