사용자 도구

사이트 도구


java:hibernate:id_generator

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:hibernate:id_generator [2018/11/09 14:06]
kwon37xi
java:hibernate:id_generator [2023/06/09 10:02]
kwon37xi [UUID]
줄 2: 줄 2:
   * [[https://www.thoughts-on-java.org/custom-sequence-based-idgenerator/|How to Implement a Custom, Sequence-Based IdGenerator]]   * [[https://www.thoughts-on-java.org/custom-sequence-based-idgenerator/|How to Implement a Custom, Sequence-Based IdGenerator]]
   * [[https://www.objectdb.com/java/jpa/entity/generated|JPA Generated Values (@GeneratedValue, @SequenceGenerator, @TableGenerator)]]   * [[https://www.objectdb.com/java/jpa/entity/generated|JPA Generated Values (@GeneratedValue, @SequenceGenerator, @TableGenerator)]]
-  * [[https://vladmihalcea.com/how-to-implement-a-custom-string-based-sequence-identifier-generator-with-hibernate/|How to implement a custom String-based sequence identifier generator with Hibernate - Vlad Mihalcea]] 
  
 ===== hibernate.id.new_generator_mappings ===== ===== hibernate.id.new_generator_mappings =====
줄 13: 줄 12:
 ===== UUID ===== ===== UUID =====
   * [[https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html|UUID]] ID 는 기본적으로 **Binary**로 매핑된다.    * [[https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html|UUID]] ID 는 기본적으로 **Binary**로 매핑된다. 
-  * 또한 ID Generator는 [https://docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/id/UUIDGenerator.html|UUIDGenerater]]를 사용한다.+  * 또한 ID Generator는 [[https://docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/id/UUIDGenerator.html|UUIDGenerater]]를 사용한다.
   * 해당 컬럼을 문자열로 지정하고 싶다면 ''@Type(type="uuid-char")''를 붙인다.   * 해당 컬럼을 문자열로 지정하고 싶다면 ''@Type(type="uuid-char")''를 붙인다.
  
줄 36: 줄 35:
 } }
 </code> </code>
 +  * DB에서 ID 값을 읽어와야만 Persistence Context 에 저장가능하기 때문에, 객체 생성후 ''persist()'' 즉시 commit을 하지 않아도 DB 저장이 일어난다.
 ===== Sequence ===== ===== Sequence =====
 <code java> <code java>
줄 62: 줄 61:
 ===== IdGenerator ===== ===== IdGenerator =====
   * ID 생성기를 Custom으로 만들 수 있다.   * ID 생성기를 Custom으로 만들 수 있다.
 +  * [[https://vladmihalcea.com/how-to-implement-a-custom-string-based-sequence-identifier-generator-with-hibernate/|How to implement a custom String-based sequence identifier generator with Hibernate - Vlad Mihalcea]]
   * [[http://blog.anorakgirl.co.uk/2009/01/custom-hibernate-sequence-generator-for-id-field/|Custom Hibernate Sequence Generator for Id field]]   * [[http://blog.anorakgirl.co.uk/2009/01/custom-hibernate-sequence-generator-for-id-field/|Custom Hibernate Sequence Generator for Id field]]
   * [[http://stackoverflow.com/questions/11631800/hibernate-how-specify-custom-sequence-generator-class-name-using-annotations|jpa - Hibernate: How specify custom sequence generator class name using annotations?]]   * [[http://stackoverflow.com/questions/11631800/hibernate-how-specify-custom-sequence-generator-class-name-using-annotations|jpa - Hibernate: How specify custom sequence generator class name using annotations?]]
줄 73: 줄 73:
  
         String prefix = "M";         String prefix = "M";
-        Connection connection = session.connection();+        // 이 Connection 은 Hibernate 가 관리하기 때문에 직접 close는 하지 말것. 
 +        Connection connection = session.connection(); 
         try {         try {
  
줄 106: 줄 107:
 </code> </code>
   * ''org.hibernate.id.Configurable'' 인터페이스를 함께 구현하여 [[https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/annotations/GenericGenerator.html|@GenericGenerator]]에 파라미터를 지정하는 것도 가능하다. 이를 자신이 만든 Generator에서 받아서 사용한다.   * ''org.hibernate.id.Configurable'' 인터페이스를 함께 구현하여 [[https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/annotations/GenericGenerator.html|@GenericGenerator]]에 파라미터를 지정하는 것도 가능하다. 이를 자신이 만든 Generator에서 받아서 사용한다.
 +
 +
 +===== 참조 =====
 +  * [[https://www.baeldung.com/hibernate-identifiers|An Overview of Identifiers in Hibernate/JPA | Baeldung]]
  
java/hibernate/id_generator.txt · 마지막으로 수정됨: 2023/06/09 10:02 저자 kwon37xi