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 1111import javax .persistence .spi .LoadState ;
1212
1313import org .hibernate .Hibernate ;
14+ import org .hibernate .MappingException ;
1415import org .hibernate .engine .spi .EntityEntry ;
1516import org .hibernate .engine .spi .ManagedEntity ;
1617import org .hibernate .engine .spi .SessionFactoryImplementor ;
@@ -92,9 +93,15 @@ else if ( entity instanceof ManagedEntity ) {
9293
9394 private Object getIdentifierFromPersister (Object entity ) {
9495 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 );
98105 }
99106 return persister .getIdentifier ( entity , null );
100107 }
Original file line number Diff line number Diff line change 1515import org .junit .Before ;
1616import org .junit .Test ;
1717
18+ import static org .junit .Assert .fail ;
19+
1820/**
1921 * @author Steve Ebersole
2022 */
@@ -51,6 +53,28 @@ public void getIdentifierTest() throws Exception {
5153 entityManager .close ();
5254 }
5355
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+
5478 private NestedLegacyEntity createExisitingNestedLegacyEntity () {
5579
5680 ModernEntity modernEntity = new ModernEntity ();
You can’t perform that action at this time.
0 commit comments