HHH-16639 Add test for issue
This commit is contained in:
parent
54c9c1010e
commit
c753dcb027
|
@ -0,0 +1,156 @@
|
||||||
|
package org.hibernate.orm.test.batch;
|
||||||
|
|
||||||
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.junit.DomainModel;
|
||||||
|
import org.hibernate.testing.orm.junit.JiraKey;
|
||||||
|
import org.hibernate.testing.orm.junit.ServiceRegistry;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||||
|
import org.hibernate.testing.orm.junit.Setting;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EnumType;
|
||||||
|
import jakarta.persistence.Enumerated;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
|
||||||
|
|
||||||
|
@DomainModel(
|
||||||
|
annotatedClasses = {
|
||||||
|
BatchAndEnumIdTest.Property.class
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@ServiceRegistry(
|
||||||
|
settings = {
|
||||||
|
@Setting(name = AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, value = "2")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@SessionFactory
|
||||||
|
@JiraKey("HHH-16639")
|
||||||
|
public class BatchAndEnumIdTest {
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void setUp(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Property property1 = new Property( Property.Key.KEY1, "value1" );
|
||||||
|
Property property2 = new Property( Property.Key.KEY2, "value2" );
|
||||||
|
session.persist( property1 );
|
||||||
|
session.persist( property2 );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void tearDowm(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session ->
|
||||||
|
session.createMutationQuery( "delete from Property" ).executeUpdate()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetReference(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Property property = session.getReference( Property.class, Property.Key.KEY1 );
|
||||||
|
|
||||||
|
property.setValue( "value1 updated" );
|
||||||
|
session.merge( property );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetReference2(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Property property = session.getReference( Property.class, Property.Key.KEY1 );
|
||||||
|
Property property2 = session.getReference( Property.class, Property.Key.KEY2 );
|
||||||
|
|
||||||
|
property.setValue( "value1 updated" );
|
||||||
|
session.merge( property );
|
||||||
|
|
||||||
|
property2.setValue( "value2 updated" );
|
||||||
|
session.merge( property2 );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFind(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Property property = session.find( Property.class, Property.Key.KEY1 );
|
||||||
|
|
||||||
|
property.setValue( "value1 updated" );
|
||||||
|
session.merge( property );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testFind2(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Property property = session.find( Property.class, Property.Key.KEY1 );
|
||||||
|
Property property2 = session.find( Property.class, Property.Key.KEY2 );
|
||||||
|
|
||||||
|
property.setValue( "value1 updated" );
|
||||||
|
session.merge( property );
|
||||||
|
|
||||||
|
property2.setValue( "value2 updated" );
|
||||||
|
session.merge( property2 );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(name = "Property")
|
||||||
|
@Table(name = "PROPERTY_TABLE")
|
||||||
|
public static class Property {
|
||||||
|
|
||||||
|
public enum Key {
|
||||||
|
KEY1,
|
||||||
|
KEY2,
|
||||||
|
KEY3
|
||||||
|
}
|
||||||
|
|
||||||
|
public Property() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Property(Key key, String value) {
|
||||||
|
this.key = key;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@Column(name = "KEY_COLUMN")
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
private Key key;
|
||||||
|
|
||||||
|
@Column(name = "VALUE_COLUMN")
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
public Key getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(Key key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue