8000 HHH-19324 - Switch tests using hbm.xml to use mapping.xml · hibernate/hibernate-orm@efc2dc9 · GitHub
[go: up one dir, main page]

Skip to content

Commit efc2dc9

Browse files
committed
HHH-19324 - Switch tests using hbm.xml to use mapping.xml
HHH-19433 - Deprecate @PropertyRef
1 parent 55c5838 commit efc2dc9

File tree

96 files changed

+2143
-2401
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+2143
-2401
lines changed

hibernate-core/src/main/java/org/hibernate/annotations/PropertyRef.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import java.lang.annotation.Target;
1010
import java.lang.annotation.Retention;
1111

12-
import org.hibernate.Incubating;
1312

14-
import jakarta.persistence.ManyToMany;
15-
import jakarta.persistence.OneToMany;
1613

1714
/**
1815
* Allows to specify the target of a foreign-key using a "target attribute" as opposed to
@@ -56,14 +53,19 @@
5653
* }
5754
* </pre>
5855
*
59-
* @apiNote As Hibernate allows {@linkplain OneToMany#mappedBy()} and {@linkplain ManyToMany#mappedBy()} to refer
60-
* to basic and embedded attributes already, this annotation is mainly useful for mapping to-one associations.
56+
* @see jakarta.persistence.JoinColumn
57+
* @see JoinFormula
58+
*
59+
* @apiNote This was originally added to support conversions from Hibernate's legacy
60+
* {@code hbm.xml} mapping format.
61+
*
62+
* @deprecated Use {@linkplain jakarta.persistence.JoinColumn}, or similar, instead.
6163
*
6264
* @author Steve Ebersole
6365
*/
6466
@Target({ElementType.FIELD,ElementType.METHOD,ElementType.ANNOTATION_TYPE})
6567
@Retention(RetentionPolicy.RUNTIME)
66-
@Incubating
68+
@Deprecated(forRemoval = true)
6769
public @interface PropertyRef {
6870
/**
6971
* The name of the attribute on the target entity which defines the foreign-key target.

hibernate-core/src/main/java/org/hibernate/boot/models/xml/internal/ManagedTypeProcessor.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ public static void processCompleteEntity(
126126
DynamicModelHelper.prepareDynamicClass( classDetails, jaxbEntity, xmlDocumentContext );
127127
}
128128
else {
129-
memberAdjuster = ManagedTypeProcessor::adjustCompleteNonDynamicTypeMember;
130129
final String className = XmlProcessingHelper.determineClassName( jaxbRoot, jaxbEntity );
130+
memberAdjuster = ManagedTypeProcessor::adjustCompleteNonDynamicTypeMember;
131131
classDetails = (MutableClassDetails) classDetailsRegistry.resolveClassDetails( className );
132132
classAccessType = coalesce(
133133
jaxbEntity.getAccess(),
@@ -688,6 +688,8 @@ private static void processEmbeddableMetadata(
688688
xmlDocumentContext
689689
);
690690
}
691+
692+
renderClass( classDetails, xmlDocumentContext );
691693
}
692694

693695
public static void processOverrideEmbeddable(List<XmlProcessingResult.OverrideTuple<JaxbEmbeddableImpl>> embeddableOverrides) {
@@ -712,6 +714,8 @@ public static void processOverrideEmbeddable(List<XmlProcessingResult.OverrideTu
712714
xmlDocumentContext
713715
);
714716
}
717+
718+
renderClass( classDetails, xmlDocumentContext );
715719
} );
716720
}
717721
}

hibernate-core/src/test/java/org/hibernate/orm/test/bytecode/enhancement/cascade/circle/AbstractMultiPathCircleCascadeTest.java

Lines changed: 46 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
*/
55
package org.hibernate.orm.test.bytecode.enhancement.cascade.circle;
66

7-
import java.util.Iterator;
8-
7+
import jakarta.persistence.PersistenceException;
98
import org.hibernate.JDBCException;
109
import org.hibernate.PropertyValueException;
1110
import org.hibernate.Session;
@@ -14,43 +13,43 @@
1413
import org.hibernate.orm.test.cascade.circle.Route;
1514
import org.hibernate.orm.test.cascade.circle.Tour;
1615
import org.hibernate.orm.test.cascade.circle.Transport;
17-
1816
import org.hibernate.testing.orm.junit.SessionFactoryScope;
1917
import org.junit.jupiter.api.AfterEach;
20-
import org.junit.jupiter.api.Assertions;
2118
import org.junit.jupiter.api.Test;
2219

23-
import jakarta.persistence.PersistenceException;
20+
import java.util.Iterator;
2421

2522
import static org.hibernate.testing.junit4.ExtraAssertions.assertTyping;
26-
import static org.junit.Assert.assertEquals;
27-
import static org.junit.Assert.assertNotNull;
28-
import static org.junit.Assert.assertSame;
29-
import static org.junit.Assert.assertTrue;
30-
import static org.junit.Assert.fail;
23+
import static org.junit.jupiter.api.Assertions.assertEquals;
24+
import static org.junit.jupiter.api.Assertions.assertNotEquals;
25+
import static org.junit.jupiter.api.Assertions.assertNotNull;
26+
import static org.junit.jupiter.api.Assertions.assertSame;
27+
import static org.junit.jupiter.api.Assertions.assertTrue;
28+
import static org.junit.jupiter.api.Assertions.fail;
3129

3230
/**
3331
* @author Andrea Boriero
3432
*/
33+
@SuppressWarnings("JUnitMalformedDeclaration")
3534
public abstract class AbstractMultiPathCircleCascadeTest {
3635
private interface EntityOperation {
3736
boolean isLegacy();
3837

38+
@SuppressWarnings("UnusedReturnValue")
3939
Object doEntityOperation(Object entity, Session s);
4040
}
4141

42-
private static EntityOperation MERGE_OPERATION =
43-
new EntityOperation() {
44-
@Override
45-
public boolean isLegacy() {
46-
return false;
47-
}
42+
private static final EntityOperation MERGE_OPERATION = new EntityOperation() {
43+
@Override
44+
public boolean isLegacy() {
45+
return false;
46+
}
4847

49-
@Override
50-
public Object doEntityOperation(Object entity, Session s) {
51-
return s.merge( entity );
52-
}
53-
};
48+
@Override
49+
public Object doEntityOperation(Object entity, Session s) {
50+
return s.merge( entity );
51+
}
52+
};
5453

5554
@Test
5655
public void testMergeEntityWithNonNullableTransientEntity(SessionFactoryScope scope) {
@@ -61,7 +60,7 @@ private void testEntityWithNonNullableTransientEntity(SessionFactoryScope scope,
6160

6261
Route route = getUpdatedDetachedEntity( scope );
6362

64-
Node node = (Node) route.getNodes().iterator().next();
63+
Node node = route.getNodes().iterator().next();
6564
route.getNodes().remove( node );
6665

6766
Route routeNew = new Route();
@@ -101,7 +100,7 @@ public void testMergeEntityWithNonNullableEntityNull(SessionFactoryScope scope)
101100
private void testEntityWithNonNullableEntityNull(SessionFactoryScope scope, EntityOperation operation) {
102101
Route route = getUpdatedDetachedEntity( scope );
103102

104-
Node node = (Node) route.getNodes().iterator().next();
103+
Node node = route.getNodes().iterator().next();
105104
route.getNodes().remove( node );
106105
node.setRoute( null );
107106

@@ -136,7 +135,7 @@ public void testMergeEntityWithNonNullablePropSetToNull(SessionFactoryScope scop
136135
void testEntityWithNonNullablePropSetToNull(SessionFactoryScope scope, EntityOperation operation) {
137136
final Route route = getUpdatedDetachedEntity( scope );;
138137

139-
Node node = (Node) route.getNodes().iterator().next();
138+
Node node = route.getNodes().iterator().next();
140139
node.setName( null );
141140

142141
scope.inSession(
@@ -186,7 +185,7 @@ private void testRoute( EntityOperation operation, SessionFactoryScope scope) {
186185

187186
scope.inTransaction(
188187
session -> {
189-
Route route = session.get( Route.class, r.getRouteID() );
188+
Route route = session.find( Route.class, r.getRouteID() );
190189
checkResults( route, true );
191190
}
192191
);
@@ -205,14 +204,14 @@ private void testPickupNode(SessionFactoryScope scope, EntityOperation operation
205204

206205
scope.inTransaction(
207206
session -> {
208-
Iterator it = r.getNodes().iterator();
209-
Node node = (Node) it.next();
207+
Iterator<Node> it = r.getNodes().iterator();
208+
Node node = it.next();
210209
Node pickupNode;
211210
if ( node.getName().equals( "pickupNodeB" ) ) {
212211
pickupNode = node;
213212
}
214213
else {
215-
node = (Node) it.next();
214+
node = it.next();
216215
assertEquals( "pickupNodeB", node.getName() );
217216
pickupNode = node;
218217
}
@@ -226,7 +225,7 @@ private void testPickupNode(SessionFactoryScope scope, EntityOperation operation
226225

227226
scope.inTransaction(
228227
session -> {
229-
Route route = session.get( Route.class, r.getRouteID() );
228+
Route route = session.find( Route.class, r.getRouteID() );
230229
checkResults( route, false );
231230
}
232231
);
@@ -245,14 +244,14 @@ private void testDeliveryNode(SessionFactoryScope scope, EntityOperation operati
245244

246245
scope.inTransaction(
247246
session -> {
248-
Iterator it = r.getNodes().iterator();
249-
Node node = (Node) it.next();
247+
Iterator<Node> it = r.getNodes().iterator();
248+
Node node = it.next();
250249
Node deliveryNode;
251250
if ( node.getName().equals( "deliveryNodeB" ) ) {
252251
deliveryNode = node;
253252
}
254253
else {
255-
node = (Node) it.next();
254+
node = it.next();
256255
assertEquals( "deliveryNodeB", node.getName() );
257256
deliveryNode = node;
258257
}
@@ -267,7 +266,7 @@ private void testDeliveryNode(SessionFactoryScope scope, EntityOperation operati
267266

268267
scope.inTransaction(
269268
session -> {
270-
Route route = session.get( Route.class, r.getRouteID() );
269+
Route route = session.find( Route.class, r.getRouteID() );
271270
checkResults( route, false );
272271
}
273272
);
@@ -295,7 +294,7 @@ private void testTour(SessionFactoryScope scope, EntityOperation operation) {
295294

296295
scope.inTransaction(
297296
session -> {
298-
Route route = session.get( Route.class, r.getRouteID() );
297+
Route route = session.find( Route.class, r.getRouteID() );
299298
checkResults( route, false );
300299
}
301300
);
@@ -332,61 +331,12 @@ private void testTransport(SessionFactoryScope scope, EntityOperation operation)
332331

333332
scope.inTransaction(
334333
session -> {
335-
Route route = session.get( Route.class, r.getRouteID() );
334+
Route route = session.find( Route.class, r.getRouteID() );
336335
checkResults( route, false );
337336
}
338337
);
339338
}
340339

341-
// private Node getSimpleUpdatedDetachedEntity() {
342-
//
343-
// Node deliveryNode = new Node();
344-
// deliveryNode.setName( "deliveryNodeB" );
345-
// return deliveryNode;
346-
// }
347-
348-
// private Route createEntity() {
349-
//
350-
// Route route = new Route();
351-
// route.setName( "routeA" );
352-
//
353-
// route.setName( "new routeA" );
354-
// route.setTransientField( "sfnaouisrbn" );
355-
//
356-
// Tour tour = new Tour();
357-
// tour.setName( "tourB" );
358-
//
359-
// Transport transport = new Transport();
360-
// transport.setName( "transportB" );
361-
//
362-
// Node pickupNode = new Node();
363-
// pickupNode.setName( "pickupNodeB" );
364-
//
365-
// Node deliveryNode = new Node();
366-
// deliveryNode.setName( "deliveryNodeB" );
367-
//
368-
// pickupNode.setRoute( route );
369-
// pickupNode.setTour( tour );
370-
// pickupNode.getPickupTransports().add( transport );
371-
// pickupNode.setTransientField( "pickup node aaaaaaaaaaa" );
372-
//
373-
// deliveryNode.setRoute( route );
374-
// deliveryNode.setTour( tour );
375-
// deliveryNode.getDeliveryTransports().add( transport );
376-
// deliveryNode.setTransientField( "delivery node aaaaaaaaa" );
377-
//
378-
// tour.getNodes().add( pickupNode );
379-
// tour.getNodes().add( deliveryNode );
380-
//
381-
// route.getNodes().add( pickupNode );
382-
// route.getNodes().add( deliveryNode );
383-
//
384-
// transport.setPickupNode( pickupNode );
385-
// transport.setDeliveryNode( deliveryNode );
386-
// transport.setTransientField( "aaaaaaaaaaaaaa" );
387-
//
388-
// return route;
389-
// }
390340

391341
private Route getUpdatedDetachedEntity(SessionFactoryScope scope) {
392342

@@ -439,14 +389,7 @@ private Route getUpdatedDetachedEntity(SessionFactoryScope scope) {
439389

440390
@AfterEach
441391
public void cleanup(SessionFactoryScope scope) {
442-
scope.inTransaction(
443-
session -> {
444-
session.createQuery( "delete from Transport" );
445-
session.createQuery( "delete from Tour" );
446-
session.createQuery( "delete from Node" );
447-
session.createQuery( "delete from Route" );
448-
}
449-
);
392+
scope.dropData();
450393
}
451394

452395
private void checkResults(Route route, boolean isRouteUpdated) {
@@ -458,8 +401,8 @@ private void checkResults(Route route, boolean isRouteUpdated) {
458401
assertEquals( 2, route.getNodes().size() );
459402
Node deliveryNode = null;
460403
Node pickupNode = null;
461-
for ( Iterator it = route.getNodes().iterator(); it.hasNext(); ) {
462-
Node node = (Node) it.next();
404+
for ( Iterator<Node> it = route.getNodes().iterator(); it.hasNext(); ) {
405+
Node node = it.next();
463406
if ( "deliveryNodeB".equals( node.getName() ) ) {
464407
deliveryNode = node;
465408
}
@@ -484,15 +427,13 @@ else if ( "pickupNodeB".equals( node.getName() ) ) {
484427
assertNotNull( pickupNode.getTour() );
485428
assertEquals( "node original value", pickupNode.getTransientField() );
486429

487-
assertTrue( !deliveryNode.getNodeID().equals( pickupNode.getNodeID() ) );
430+
assertNotEquals( deliveryNode.getNodeID(), pickupNode.getNodeID() );
488431
assertSame( deliveryNode.getTour(), pickupNode.getTour() );
489-
assertSame(
490-
deliveryNode.getDeliveryTransports().iterator().next(),
491-
pickupNode.getPickupTransports().iterator().next()
492-
);
432+
assertSame( deliveryNode.getDeliveryTransports().iterator().next(),
433+
pickupNode.getPickupTransports().iterator().next() );
493434

494435
Tour tour = deliveryNode.getTour();
495-
Transport transport = (Transport) deliveryNode.getDeliveryTransports().iterator().next();
436+
Transport transport = deliveryNode.getDeliveryTransports().iterator().next();
496437

497438
assertEquals( "tourB", tour.getName() );
498439
assertEquals( 2, tour.getNodes().size() );
@@ -526,7 +467,7 @@ private void testData3Nodes(SessionFactoryScope scope, EntityOperation operation
526467

527468
scope.inTransaction(
528469
session -> {
529-
Route route = session.get( Route.class, r.getRouteID() );
470+
Route route = session.find( Route.class, r.getRouteID() );
530471
route.setName( "new routA" );
531472

532473
route.setTransientField( "sfnaouisrbn" );
@@ -602,7 +543,7 @@ protected void checkExceptionFromNullValueForNonNullable(
602543
}
603544
}
604545
else {
605-
Assertions.assertTrue( ( ex instanceof JDBCException ) || ( ex.getCause() instanceof JDBCException ), ex.getMessage() );
546+
assertTrue( ( ex instanceof JDBCException ) || ( ex.getCause() instanceof JDBCException ), ex.getMessage() );
606547
}
607548
}
608549
else {
@@ -621,16 +562,16 @@ protected void clearCounts(SessionFactoryScope scope) {
621562

622563
protected void assertInsertCount(SessionFactoryScope scope, int expected) {
623564
int inserts = (int) scope.getSessionFactory().getStatistics().getEntityInsertCount();
624-
Assertions.assertEquals( expected, inserts, "unexpected insert count" );
565+
assertEquals( expected, inserts, "unexpected insert count" );
625566
}
626567

627568
protected void assertUpdateCount(SessionFactoryScope scope, int expected) {
628569
int updates = (int) scope.getSessionFactory().getStatistics().getEntityUpdateCount();
629-
Assertions.assertEquals( expected, updates, "unexpected update counts" );
570+
assertEquals( expected, updates, "unexpected update counts" );
630571
}
631572

632573
protected void assertDeleteCount(SessionFactoryScope scope, int expected) {
633574
int deletes = (int) scope.getSessionFactory().getStatistics().getEntityDeleteCount();
634-
Assertions.assertEquals( expected, deletes, "unexpected delete counts" );
575+
assertEquals( expected, deletes, "unexpected delete counts" );
635576
}
636577
}

0 commit comments

Comments
 (0)
0