Skip to content

Commit 6a5b9a7

Browse files
cigalymbellade
authored andcommitted
HHH-19747 Testing Hibernate Envers with entity containing property of enum type with field annotated with @EnumeratedValue
1 parent 54a33a9 commit 6a5b9a7

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/*
2+
* SPDX-License-Identifier: Apache-2.0
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.orm.test.envers.mapping.enumeratedvalue;
6+
7+
import jakarta.persistence.Column;
8+
import jakarta.persistence.Entity;
9+
import jakarta.persistence.EntityManagerFactory;
10+
import jakarta.persistence.EnumType;
11+
import jakarta.persistence.Enumerated;
12+
import jakarta.persistence.EnumeratedValue;
13+
import jakarta.persistence.Id;
14+
import jakarta.persistence.Table;
15+
import org.hibernate.annotations.JdbcTypeCode;
16+
import org.hibernate.envers.Audited;
17+
import org.hibernate.testing.orm.junit.EntityManagerFactoryBasedFunctionalTest;
18+
import org.hibernate.testing.orm.junit.JiraKey;
19+
import org.hibernate.type.SqlTypes;
20+
import org.junit.Test;
21+
22+
23+
@JiraKey( "HHH-19747" )
24+
public class CharEnumerateValueTests extends EntityManagerFactoryBasedFunctionalTest {
25+
26+
@Override
27+
protected Class<?>[] getAnnotatedClasses() {
28+
return new Class<?>[] {Person.class};
29+
}
30+
31+
@Test
32+
public void testBasicUsage() {
33+
final EntityManagerFactory testEmf = produceEntityManagerFactory();
34+
testEmf.close();
35+
}
36+
37+
public enum Gender {
38+
MALE( 'M' ),
39+
FEMALE( 'F' ),
40+
OTHER( 'U' );
41+
42+
@EnumeratedValue
43+
private final char code;
44+
45+
Gender(char code) {
46+
this.code = code;
47+
}
48+
49+
public char getCode() {
50+
return code;
51+
}
52+
}
53+
54+
@Audited
55+
@Entity(name = "Person")
56+
@Table(name = "persons")
57+
public static class Person {
58+
@Id
59+
private Integer id;
60+
private String name;
61+
@Enumerated(EnumType.STRING)
62+
@JdbcTypeCode(SqlTypes.CHAR)
63+
@Column(length = 1)
64+
private Gender gender;
65+
66+
public Person() {
67+
}
68+
69+
public Person(Integer id, String name, Gender gender) {
70+
this.id = id;
71+
this.name = name;
72+
this.gender = gender;
73+
}
74+
}
75+
}

0 commit comments

Comments
 (0)