Rebase main -> 7.0
This commit is contained in:
parent
3115537bb5
commit
411e08a42a
|
@ -12,17 +12,17 @@ import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
|
||||||
import org.hibernate.annotations.JdbcTypeCode;
|
import org.hibernate.annotations.JdbcTypeCode;
|
||||||
import org.hibernate.orm.test.mapping.converted.enums.ConvertedEnumCheckConstraintsTests;
|
import org.hibernate.dialect.SybaseDialect;
|
||||||
import org.hibernate.type.SqlTypes;
|
import org.hibernate.type.SqlTypes;
|
||||||
|
|
||||||
import org.hibernate.testing.orm.junit.DomainModel;
|
import org.hibernate.testing.orm.junit.DomainModel;
|
||||||
import org.hibernate.testing.orm.junit.SessionFactory;
|
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||||
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||||
|
import org.hibernate.testing.orm.junit.SkipForDialect;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.Convert;
|
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
import jakarta.persistence.Enumerated;
|
import jakarta.persistence.Enumerated;
|
||||||
|
@ -63,7 +63,7 @@ public class CharEnumerateValueTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@DomainModel(annotatedClasses = Person.class)
|
@DomainModel(annotatedClasses = Person.class)
|
||||||
@SessionFactory(useCollectingStatementInspector = true)
|
@SessionFactory
|
||||||
@Test
|
@Test
|
||||||
void testNulls(SessionFactoryScope scope) {
|
void testNulls(SessionFactoryScope scope) {
|
||||||
scope.inTransaction( (session) -> {
|
scope.inTransaction( (session) -> {
|
||||||
|
@ -85,12 +85,29 @@ public class CharEnumerateValueTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@DomainModel(annotatedClasses = Person.class)
|
@DomainModel(annotatedClasses = Person.class)
|
||||||
@SessionFactory(useCollectingStatementInspector = true)
|
@SessionFactory
|
||||||
@Test
|
@Test
|
||||||
void verifyCheckConstraints(SessionFactoryScope scope) {
|
void verifyCheckConstraints(SessionFactoryScope scope) {
|
||||||
scope.inTransaction( (session) -> session.doWork( (connection) -> {
|
scope.inTransaction( (session) -> session.doWork( (connection) -> {
|
||||||
try (PreparedStatement statement = connection.prepareStatement( "insert into persons (id, gender) values (?, ?)" ) ) {
|
try (PreparedStatement statement = connection.prepareStatement( "insert into persons (id, gender) values (?, ?)" ) ) {
|
||||||
statement.setInt( 1, 100 );
|
statement.setInt( 1, 100 );
|
||||||
|
statement.setString( 2, "X" );
|
||||||
|
statement.executeUpdate();
|
||||||
|
fail( "Expecting a failure" );
|
||||||
|
}
|
||||||
|
catch (SQLException expected) {
|
||||||
|
}
|
||||||
|
} ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
@DomainModel(annotatedClasses = Person.class)
|
||||||
|
@SessionFactory
|
||||||
|
@SkipForDialect( dialectClass = SybaseDialect.class, matchSubTypes = true, reason = "Sybase (at least jTDS driver) truncates the value so the constraint is not violated" )
|
||||||
|
@Test
|
||||||
|
void verifyCheckConstraints2(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction( (session) -> session.doWork( (connection) -> {
|
||||||
|
try (PreparedStatement statement = connection.prepareStatement( "insert into persons (id, gender) values (?, ?)" ) ) {
|
||||||
|
statement.setInt( 1, 200 );
|
||||||
// this would work without check constraints or with check constraints based solely on EnumType#STRING
|
// this would work without check constraints or with check constraints based solely on EnumType#STRING
|
||||||
statement.setString( 2, "MALE" );
|
statement.setString( 2, "MALE" );
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
|
Loading…
Reference in New Issue