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

Skip to content

Commit ac05c4d

Browse files
committed
HHH-19324 - Switch tests using hbm.xml to use mapping.xml
HHH-19433 - Deprecate @PropertyRef
1 parent 55c5838 commit ac05c4d
  • component
  • resources/org/hibernate/orm/test
  • Some content is hidden

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

    69 files changed

    +1347
    -1592
    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: 4 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -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
    }

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

    Lines changed: 6 additions & 12 deletions
    Original file line numberDiff line numberDiff line change
    @@ -18,18 +18,12 @@
    1818
    /**
    1919
    * @author Gail Badner
    2020
    */
    21-
    @DomainModel(
    22-
    xmlMappings = {
    23-
    "org/hibernate/orm/test/cascade/circle/MultiPathCircleCascadeDelayedInsert.hbm.xml"
    24-
    }
    25-
    )
    26-
    @ServiceRegistry(
    27-
    settings = {
    28-
    @Setting( name = AvailableSettings.GENERATE_STATISTICS, value = "true" ),
    29-
    @Setting( name = AvailableSettings.STATEMENT_BATCH_SIZE, value = "0" ),
    30-
    @Setting( name = AvailableSettings.CHECK_NULLABILITY, value = "false" ),
    31-
    }
    32-
    )
    21+
    @ServiceRegistry(settings = {
    22+
    @Setting( name = AvailableSettings.GENERATE_STATISTICS, value = "true" ),
    23+
    @Setting( name = AvailableSettings.STATEMENT_BATCH_SIZE, value = "0" ),
    24+
    @Setting( name = AvailableSettings.CHECK_NULLABILITY, value = "false" ),
    25+
    })
    26+
    @DomainModel(xmlMappings = "org/hibernate/orm/test/cascade/circle/MultiPathCircleCascadeDelayedInsert.xml")
    3327
    @SessionFactory
    3428
    @BytecodeEnhanced
    3529
    @CustomEnhancementContext({ NoDirtyCheckingContext.class, DirtyCheckEnhancementContext.class })

    0 commit comments

    Comments
     (0)
    0