File tree Expand file tree Collapse file tree 2 files changed +34
-3
lines changed
main/java/org/hibernate/jpa/internal
test/java/org/hibernate/jpa/test/factory/puUtil Expand file tree Collapse file tree 2 files changed +34
-3
lines changed Original file line number Diff line number Diff line change 11
11
import javax .persistence .spi .LoadState ;
12
12
13
13
import org .hibernate .Hibernate ;
14
+ import org .hibernate .MappingException ;
14
15
import org .hibernate .engine .spi .EntityEntry ;
15
16
import org .hibernate .engine .spi .ManagedEntity ;
16
17
import org .hibernate .engine .spi .SessionFactoryImplementor ;
@@ -92,9 +93,15 @@ else if ( entity instanceof ManagedEntity ) {
92
93
93
94
private Object getIdentifierFromPersister (Object entity ) {
94
95
Class <?> entityClass = Hibernate .getClass ( entity );
95
- EntityPersister persister = sessionFactory .getMetamodel ().entityPersister ( entityClass );
96
- if ( persister == null ) {
97
- throw new IllegalArgumentException ( entityClass .getName () + " is not an entity" );
96
+ final EntityPersister persister ;
97
+ try {
98
+ persister = sessionFactory .getMetamodel ().entityPersister ( entityClass );
99
+ if ( persister == null ) {
100
+ throw new IllegalArgumentException ( entityClass .getName () + " is not an entity" );
101
+ }
102
+ }
103
+ catch (MappingException ex ) {
104
+ throw new IllegalArgumentException ( entityClass .getName () + " is not an entity" , ex );
98
105
}
99
106
return persister .getIdentifier ( entity , null );
100
107
}
Original file line number Diff line number Diff line change 15
15
import org .junit .Before ;
16
16
import org .junit .Test ;
17
17
18
+ import static org .junit .Assert .fail ;
19
+
18
20
/**
19
21
* @author Steve Ebersole
20
22
*/
@@ -51,6 +53,28 @@ public void getIdentifierTest() throws Exception {
51
53
entityManager .close ();
52
54
}
53
55
56
+ @ Test
57
+ public void getIdentifierOfNonEntityTest () {
58
+ try {
59
+ entityManagerFactory ().getPersistenceUnitUtil ().getIdentifier ( this );
60
+ fail ( "should have thrown IllegalArgumentException" );
61
+ }
62
+ catch (IllegalArgumentException ex ) {
63
+ // expected
64
+ }
65
+ }
66
+
67
+ @ Test
68
+ public void getIdentifierOfNullTest () {
69
+ try {
70
+ entityManagerFactory ().getPersistenceUnitUtil ().getIdentifier ( null );
71
+ fail ( "should have thrown IllegalArgumentException" );
72
+ }
73
+ catch (IllegalArgumentException ex ) {
74
+ // expected
75
+ }
76
+ }
77
+
54
78
private NestedLegacyEntity createExisitingNestedLegacyEntity () {
55
79
56
80
ModernEntity modernEntity = new ModernEntity ();
You can’t perform that action at this time.
0 commit comments