HHH-12676 - SecondaryTables do not work with TABLE_PER_CLASS inheritance
This commit is contained in:
parent
1b9f636114
commit
2c5e0ff113
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* Copyright Red Hat Inc. and Hibernate Authors
|
||||
*/
|
||||
package org.hibernate.orm.test.unionsubclass.secondarytables;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.PrimaryKeyJoinColumn;
|
||||
import jakarta.persistence.SecondaryTable;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
@Entity
|
||||
@SecondaryTable(
|
||||
name = "authorizations",
|
||||
pkJoinColumns = @PrimaryKeyJoinColumn(name = "charge_auth_fk", referencedColumnName = "id")
|
||||
)
|
||||
public class CardPayment extends Payment {
|
||||
ZonedDateTime paymentMade;
|
||||
|
||||
@Column(table = "authorizations")
|
||||
String authorizationCode;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* Copyright Red Hat Inc. and Hibernate Authors
|
||||
*/
|
||||
package org.hibernate.orm.test.unionsubclass.secondarytables;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.Inheritance;
|
||||
import jakarta.persistence.InheritanceType;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
@Entity
|
||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
||||
public abstract class Payment {
|
||||
@Id
|
||||
private Integer id;
|
||||
private String note;
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
* Copyright Red Hat Inc. and Hibernate Authors
|
||||
*/
|
||||
package org.hibernate.orm.test.unionsubclass.secondarytables;
|
||||
|
||||
import org.hibernate.testing.orm.junit.DomainModel;
|
||||
import org.hibernate.testing.orm.junit.FailureExpected;
|
||||
import org.hibernate.testing.orm.junit.Jira;
|
||||
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
@SuppressWarnings("JUnitMalformedDeclaration")
|
||||
@DomainModel(annotatedClasses = {Payment.class, CardPayment.class})
|
||||
@SessionFactory
|
||||
public class UnionSubclassWithSecondaryTableTests {
|
||||
@Test
|
||||
@FailureExpected
|
||||
@Jira("https://hibernate.atlassian.net/browse/HHH-12676")
|
||||
void testIt(SessionFactoryScope sessions) {
|
||||
sessions.inTransaction( (session) -> {
|
||||
session.createQuery( "from CardPayment" ).getResultList();
|
||||
session.createQuery( "from Payment" ).getResultList();
|
||||
} );
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue