File tree Expand file tree Collapse file tree 12 files changed +536
-0
lines changed
Expand file tree Collapse file tree 12 files changed +536
-0
lines changed Original file line number Diff line number Diff line change @@ -12,3 +12,47 @@ gradle-app.setting
1212
1313# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
1414# gradle/wrapper/gradle-wrapper.properties
15+
16+ # Node artifact files
17+ node_modules /
18+ dist /
19+
20+ # Compiled Java class files
21+ * .class
22+
23+ # Compiled Python bytecode
24+ * .py [cod ]
25+
26+ # Log files
27+ * .log
28+
29+ # Package files
30+ * .jar
31+
32+ # Maven
33+ target /
34+
35+ # JetBrains IDE
36+ .idea /
37+
38+ # Unit test reports
39+ TEST * .xml
40+
41+ # Generated by MacOS
42+ .DS_Store
43+
44+ # Generated by Windows
45+ Thumbs.db
46+
47+ # Applications
48+ * .app
49+ * .exe
50+ * .war
51+
52+ # Large media files
53+ * .mp4
54+ * .tiff
55+ * .avi
56+ * .flv
57+ * .mov
58+ * .wmv
Original file line number Diff line number Diff line change 1+ plugins {
2+ id ' java'
3+ }
4+
5+
6+ group ' org.example'
7+ version ' 1.0-SNAPSHOT'
8+
9+ compileJava. options. encoding = " UTF-8"
10+ compileTestJava. options. encoding = " UTF-8"
11+
12+ repositories {
13+ mavenCentral()
14+ }
15+
16+ dependencies {
17+ testImplementation ' org.junit.jupiter:junit-jupiter-api:5.7.0'
18+ testRuntimeOnly ' org.junit.jupiter:junit-jupiter-engine:5.7.0'
19+ implementation (group : ' org.postgresql' , name : ' postgresql' , version : ' 42.2.5' )
20+ implementation group : ' org.hibernate' , name : ' hibernate-gradle-plugin' , version : ' 5.5.2.Final'
21+
22+ compileOnly ' org.projectlombok:lombok:1.18.20'
23+ annotationProcessor ' org.projectlombok:lombok:1.18.20'
24+
25+ implementation(' ch.qos.logback:logback-classic:1.2.3' )
26+ implementation(' ch.qos.logback:logback-core:1.2.3' )
27+
28+ implementation(' org.slf4j:slf4j-api:1.7.30' )
29+
30+ // https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1
31+ implementation group : ' org.bgee.log4jdbc-log4j2' , name : ' log4jdbc-log4j2-jdbc4.1' , version : ' 1.16'
32+
33+ }
34+
35+ test {
36+ useJUnitPlatform()
37+ }
Original file line number Diff line number Diff line change 1+ import model .City ;
2+ import model .User ;
3+ import org .hibernate .SessionFactory ;
4+ import org .hibernate .boot .MetadataSources ;
5+ import org .hibernate .boot .registry .StandardServiceRegistryBuilder ;
6+
7+ import java .util .List ;
8+
9+ /**
10+ * @author alekseev.a
11+ * @since 1.0
12+ */
13+ public class Main {
14+
15+ /* public static final String URL = "jdbc:postgresql://localhost:5432/postgres";
16+ public static final String USER = "postgres";
17+ public static final String PASSWORD = "postgres";*/
18+
19+
20+ public static void main (String [] args ) {
21+ var serviceRegistry = new StandardServiceRegistryBuilder ()
22+ .configure ("hibernate.cfg.xml" ).build ();
23+ var metadata = new MetadataSources (serviceRegistry ).getMetadataBuilder ().build ();
24+ SessionFactory sessionFactory = metadata .getSessionFactoryBuilder ().build ();
25+
26+ createRecord (User .builder ().name ("name" ).build (), sessionFactory );
27+
28+ var session = sessionFactory .openSession ();
29+ List <City > list = session .createQuery ("from model.City" , City .class ).list ();
30+ System .out .println (list );
31+ }
32+
33+ private static <T > T createRecord (T record , SessionFactory factory ) {
34+ var session = factory .openSession ();
35+ var transaction = session .beginTransaction ();
36+ session .save (record );
37+ transaction .commit ();
38+ session .close ();
39+ return record ;
40+ }
41+
42+ }
Original file line number Diff line number Diff line change 1+ package model ;
2+ import lombok .AllArgsConstructor ;
3+ import lombok .Builder ;
4+ import lombok .Data ;
5+ import lombok .NoArgsConstructor ;
6+
7+ import javax .persistence .*;
8+
9+ /**
10+ * @author alekseev.a
11+ * @since 1.0
12+ */
13+ @ Data
14+ @ Builder
15+ @ AllArgsConstructor
16+ @ NoArgsConstructor
17+ @ Entity
18+ @ Table (name = "city" )
19+ public class City {
20+
21+ @ Id
22+ @ GeneratedValue (strategy = GenerationType .SEQUENCE )
23+ private int id ;
24+
25+ @ Column (length = 128 , nullable = false )
26+ private String name ;
27+
28+ @ Enumerated (EnumType .STRING )
29+ private CityType type ;
30+
31+
32+ }
Original file line number Diff line number Diff line change 1+ package model ;
2+
3+ /**
4+ * @author alekseev.a
5+ * @since 1.0
6+ */
7+
8+ public enum CityType {
9+ TOWN ,
10+ CITY
11+
12+ }
Original file line number Diff line number Diff line change 1+ package model ;
2+
3+ import lombok .AllArgsConstructor ;
4+ import lombok .Builder ;
5+ import lombok .Data ;
6+ import lombok .NoArgsConstructor ;
7+
8+ import javax .persistence .*;
9+
10+ /**
11+ * @author alekseev.a
12+ * @since 1.0
13+ */
14+ @ Data
15+ @ Builder
16+ @ AllArgsConstructor
17+ @ NoArgsConstructor
18+ @ Entity
19+ @ Table (name = "users" )
20+ public class User {
21+
22+ @ Id
23+ @ GeneratedValue (strategy = GenerationType .SEQUENCE )
24+ private int id ;
25+
26+ @ Column (length = 128 , nullable = false )
27+ private String name ;
28+
29+
30+ }
Original file line number Diff line number Diff line change 1+ <?xml version = " 1.0" encoding = " utf-8" ?>
2+ <!DOCTYPE hibernate-mapping PUBLIC
3+ "-//Hibernate/Hibernate Mapping DTD//EN"
4+ "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5+
6+ <hibernate-mapping >
7+ <class name = " model.City" table = " City" >
8+
9+ <meta attribute = " class-description" >
10+ This class contains the user detail.
11+ </meta >
12+
13+ <id name = " id" type = " int" column = " id" >
14+ <generator class =" native" />
15+ </id >
16+
17+ <property name = " name" column = " name" type = " string" />
18+ </class >
19+ </hibernate-mapping >
Original file line number Diff line number Diff line change 1+ <?xml version = " 1.0" encoding = " utf-8" ?>
2+ <!DOCTYPE hibernate-mapping PUBLIC
3+ "-//Hibernate/Hibernate Mapping DTD//EN"
4+ "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5+
6+ <hibernate-mapping >
7+ <class name = " model.User" table = " Users" >
8+
9+ <meta attribute = " class-description" >
10+ This class contains the user detail.
11+ </meta >
12+
13+ <id name = " id" type = " int" column = " id" >
14+ <generator class =" native" />
15+ </id >
16+
17+ <property name = " name" column = " name" type = " string" />
18+ </class >
19+ </hibernate-mapping >
Original file line number Diff line number Diff line change 1+ <?xml version =' 1.0' encoding =' utf-8' ?>
2+ <!DOCTYPE hibernate-configuration PUBLIC
3+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
4+ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
5+
6+ <hibernate-configuration >
7+ <session-factory >
8+ <!-- SQL Dialect -->
9+ <property name =" hibernate.dialect" >org.hibernate.dialect.PostgreSQL94Dialect</property >
10+
11+ <!-- Database Connection Settings -->
12+ <property name =" hibernate.connection.driver_class" >org.postgresql.Driver</property >
13+ <property name =" hibernate.connection.url" >jdbc:postgresql://localhost:5432/postgres</property >
14+ <property name =" hibernate.connection.username" >postgres</property >
15+ <property name =" hibernate.connection.password" >postgres</property >
16+ <property name =" hibernate.hbm2ddl.auto" >update</property >
17+ <property name =" show_sql" >true</property >
18+ <mapping class =" model.CityType" />
19+ <mapping class =" model.City" />
20+ <mapping class =" model.User" />
21+
22+
23+ </session-factory >
24+ </hibernate-configuration >
You can’t perform that action at this time.
0 commit comments