문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
java:hibernate:valuegenerationtype [2021/10/07 21:57] kwon37xi 만듦 |
java:hibernate:valuegenerationtype [2021/10/07 22:02] kwon37xi |
||
---|---|---|---|
줄 4: | 줄 4: | ||
* [[https:// | * [[https:// | ||
* 이를 기반으로 하여 [[https:// | * 이를 기반으로 하여 [[https:// | ||
+ | * see [[java: | ||
+ | |||
+ | ===== Example ===== | ||
+ | <code java> | ||
+ | @Entity(name = " | ||
+ | public static class Event { | ||
+ | |||
+ | @Id | ||
+ | @GeneratedValue | ||
+ | private Long id; | ||
+ | |||
+ | @Column(name = " | ||
+ | @FunctionCreationTimestamp | ||
+ | private Date timestamp; | ||
+ | |||
+ | // | ||
+ | } | ||
+ | |||
+ | @ValueGenerationType(generatedBy = FunctionCreationValueGeneration.class) | ||
+ | @Retention(RetentionPolicy.RUNTIME) | ||
+ | public @interface FunctionCreationTimestamp {} | ||
+ | |||
+ | public static class FunctionCreationValueGeneration | ||
+ | implements AnnotationValueGeneration< | ||
+ | |||
+ | @Override | ||
+ | public void initialize(FunctionCreationTimestamp annotation, Class<?> | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Generate value on INSERT | ||
+ | * @return when to generate the value | ||
+ | */ | ||
+ | public GenerationTiming getGenerationTiming() { | ||
+ | return GenerationTiming.INSERT; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns null because the value is generated by the database. | ||
+ | * @return null | ||
+ | */ | ||
+ | public ValueGenerator<?> | ||
+ | return null; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns true because the value is generated by the database. | ||
+ | * @return true | ||
+ | */ | ||
+ | public boolean referenceColumnInSql() { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Returns the database-generated value | ||
+ | * @return database-generated value | ||
+ | */ | ||
+ | public String getDatabaseGeneratedReferencedColumnValue() { | ||
+ | return " | ||
+ | } | ||
+ | } | ||
+ | </ | ||