Advertisement
Guest User

Untitled

a guest
Nov 15th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.90 KB | None | 0 0
  1. package playground.data.entities;
  2.  
  3. import java.time.Instant;
  4. import javax.persistence.*;
  5.  
  6. @Entity
  7. public class Tag extends BaseEntity {
  8. @Id
  9. @GeneratedValue(strategy = GenerationType.AUTO)
  10. public long Id;
  11.  
  12. @Column(unique = true, nullable = false)
  13. public String Name;
  14.  
  15. @Column(nullable = false)
  16. public Instant CreatedOn;
  17. }
  18.  
  19. <?xml version="1.0" encoding="UTF-8"?>
  20. <!DOCTYPE hibernate-configuration PUBLIC
  21. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  22. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  23. <hibernate-configuration>
  24. <session-factory>
  25. <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
  26. <property name="hibernate.connection.password">1234</property>
  27. <property name="hibernate.connection.url">jdbc:sqlserver://localhost;database=HibernatePlayground;SelectMethod=cursor</property>
  28. <property name="hibernate.connection.username">sa</property>
  29. <property name="hibernate.default_schema">dbo</property>
  30. <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
  31. <property name="hibernate.hbm2ddl.auto">update</property>
  32.  
  33. <!-- Echo all executed SQL to stdout -->
  34. <property name="show_sql">true</property>
  35.  
  36. <mapping class="playground.data.entities.Tag" />
  37. </session-factory>
  38. </hibernate-configuration>
  39.  
  40. package util;
  41.  
  42. import org.hibernate.SessionFactory;
  43. import org.hibernate.boot.MetadataSources;
  44. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
  45. import org.hibernate.cfg.Configuration;
  46. import org.hibernate.service.ServiceRegistry;
  47.  
  48. import playground.data.entities.Tag;
  49.  
  50. public class HibernateUtil {
  51.  
  52. private static final SessionFactory sessionFactory = buildSessionFactory();
  53.  
  54. private static SessionFactory buildSessionFactory() {
  55. try {
  56. // Create the SessionFactory from hibernate.cfg.xml
  57. Configuration config = new Configuration();
  58. //config.addAnnotatedClass(Tag.class); //<-- tried this too
  59. return config.configure().buildSessionFactory();
  60.  
  61. // Also tried the following.
  62. // ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
  63.  
  64. // return new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
  65.  
  66. } catch (Throwable ex) {
  67. // Make sure you log the exception, as it might be swallowed
  68. System.err.println("Initial SessionFactory creation failed." + ex);
  69. throw new ExceptionInInitializerError(ex);
  70. }
  71. }
  72.  
  73. public static SessionFactory getSessionFactory() {
  74. return sessionFactory;
  75. }
  76.  
  77. public static void shutdown() {
  78. // Close caches and connection pools
  79. getSessionFactory().close();
  80. }
  81.  
  82. }
  83.  
  84. package playground;
  85.  
  86. import java.time.Instant;
  87.  
  88. import org.hibernate.Session;
  89.  
  90. import playground.data.entities.Tag;
  91. import util.HibernateUtil;
  92.  
  93. public class Main {
  94.  
  95. public static void main(String[] args) {
  96.  
  97. Tag tag1 = new Tag() {
  98. {
  99. Name = "Tag1";
  100. CreatedOn = Instant.now();
  101. }
  102. };
  103. Tag tag2 = new Tag(){
  104. {
  105. Name = "Tag2";
  106. CreatedOn = Instant.now();
  107. }
  108. };
  109. Session ss = HibernateUtil.getSessionFactory().openSession();
  110. ss.beginTransaction();
  111. // saving objects to session
  112. ss.save(tag1); //<-- getting error here.
  113. ss.save(tag2);
  114. ss.getTransaction().commit();
  115. HibernateUtil.shutdown();
  116. }
  117. }
  118.  
  119. Nov 15, 2016 11:42:59 AM org.hibernate.Version logVersion
  120. INFO: HHH000412: Hibernate Core {5.2.4.Final}
  121. Nov 15, 2016 11:42:59 AM org.hibernate.cfg.Environment
  122. INFO: HHH000206: hibernate.properties not found
  123. Nov 15, 2016 11:42:59 AM org.hibernate.cfg.Environment buildBytecodeProvider
  124. INFO: HHH000021: Bytecode provider name : javassist
  125. Nov 15, 2016 11:43:00 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
  126. INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
  127. Nov 15, 2016 11:43:00 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
  128. WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
  129. Nov 15, 2016 11:43:00 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
  130. INFO: HHH10001005: using driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] at URL [jdbc:sqlserver://localhost;database=HibernatePlayground;SelectMethod=cursor]
  131. Nov 15, 2016 11:43:00 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
  132. INFO: HHH10001001: Connection properties: {user=sa, password=****}
  133. Nov 15, 2016 11:43:00 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
  134. INFO: HHH10001003: Autocommit mode: false
  135. Nov 15, 2016 11:43:00 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections
  136. INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
  137. Nov 15, 2016 11:43:00 AM org.hibernate.dialect.Dialect
  138. INFO: HHH000400: Using dialect: org.hibernate.dialect.SQLServerDialect
  139. Nov 15, 2016 11:43:02 AM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
  140. INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@10c626be] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
  141. Exception in thread "main" org.hibernate.MappingException: Unknown entity: playground.Main$1
  142. at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:620)
  143. at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1605)
  144. at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
  145. at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
  146. at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
  147. at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
  148. at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
  149. at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
  150. at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:674)
  151. at org.hibernate.internal.SessionImpl.save(SessionImpl.java:666)
  152. at org.hibernate.internal.SessionImpl.save(SessionImpl.java:661)
  153. at playground.Main.main(Main.java:85)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement