HHH-18054 Add tests for XML mapping
This commit is contained in:
parent
ff07248944
commit
20bc303ca6
|
@ -92,7 +92,7 @@ public class AnnotatedColumns {
|
||||||
}
|
}
|
||||||
if ( join == null ) {
|
if ( join == null ) {
|
||||||
throw new AnnotationException(
|
throw new AnnotationException(
|
||||||
"Secondary table '" + explicitTableName + "' for property '" + getPropertyHolder().getClassName()
|
"Secondary table '" + explicitTableName + "' for property '" + propertyName + "' of entity'" + getPropertyHolder().getClassName()
|
||||||
+ "' is not declared (use '@SecondaryTable' to declare the secondary table)"
|
+ "' is not declared (use '@SecondaryTable' to declare the secondary table)"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,4 +13,20 @@ public class AnotherTestEntity implements Another {
|
||||||
|
|
||||||
@Column(name = "FIRST_NAME")
|
@Column(name = "FIRST_NAME")
|
||||||
private String firstName;
|
private String firstName;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstName() {
|
||||||
|
return firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstName(String firstName) {
|
||||||
|
this.firstName = firstName;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -29,13 +29,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
@JiraKey("HHH-18054")
|
@JiraKey("HHH-18054")
|
||||||
@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsColumnCheck.class)
|
@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsColumnCheck.class)
|
||||||
public class ColumnCheckConstraintTest {
|
public class ColumnCheckConstraintTest {
|
||||||
static final String COLUMN_CONSTRAINTS = "name_column <> null";
|
static final String COLUMN_CONSTRAINTS = "name_column is not null";
|
||||||
|
|
||||||
static final String ONE_TO_ONE_JOIN_COLUMN_CONSTRAINTS = "ID <> null";
|
static final String ONE_TO_ONE_JOIN_COLUMN_CONSTRAINTS = "ID is not null";
|
||||||
static final String ONE_TO_MANY_JOIN_COLUMN_CONSTRAINTS = "ID > 2";
|
static final String ONE_TO_MANY_JOIN_COLUMN_CONSTRAINTS = "ID = 2";
|
||||||
static final String MANY_TO_ONE_JOIN_COLUMN_CONSTRAINTS = "ID > 3 ";
|
static final String MANY_TO_ONE_JOIN_COLUMN_CONSTRAINTS = "ID = 3";
|
||||||
static final String MANY_TO_MANY_JOIN_COLUMN_CONSTRAINTS = "ID > 4";
|
static final String MANY_TO_MANY_JOIN_COLUMN_CONSTRAINTS = "ID = 4";
|
||||||
static final String MANY_TO_MANY_INVERSE_JOIN_COLUMN_CONSTRAINTS = "ID > 5";
|
static final String MANY_TO_MANY_INVERSE_JOIN_COLUMN_CONSTRAINTS = "ID = 5";
|
||||||
static final String ANY_JOIN_COLUMN_CONSTRAINTS = "ID > 5";
|
static final String ANY_JOIN_COLUMN_CONSTRAINTS = "ID > 5";
|
||||||
|
|
||||||
static final String ONE_TO_ONE_JOIN_COLUMN_NAME = "ONE_TO_ONE_JOIN_COLUMN_NAME";
|
static final String ONE_TO_ONE_JOIN_COLUMN_NAME = "ONE_TO_ONE_JOIN_COLUMN_NAME";
|
||||||
|
@ -69,6 +69,14 @@ public class ColumnCheckConstraintTest {
|
||||||
assertThat( fileContent.toUpperCase( Locale.ROOT ) ).contains( COLUMN_CONSTRAINTS.toUpperCase( Locale.ROOT ) );
|
assertThat( fileContent.toUpperCase( Locale.ROOT ) ).contains( COLUMN_CONSTRAINTS.toUpperCase( Locale.ROOT ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXmlMappingColumnConstraintsAreApplied() throws Exception {
|
||||||
|
createSchema( "org/hibernate/orm/test/schemaupdate/checkconstraint/column/mapping.xml" );
|
||||||
|
String fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
|
.replace( System.lineSeparator(), "" );
|
||||||
|
assertThat( fileContent.toUpperCase( Locale.ROOT ) ).contains( COLUMN_CONSTRAINTS.toUpperCase( Locale.ROOT ) );
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testJoinColumConstraintsAreApplied() throws Exception {
|
public void testJoinColumConstraintsAreApplied() throws Exception {
|
||||||
createSchema( TestEntity.class, AnotherTestEntity.class );
|
createSchema( TestEntity.class, AnotherTestEntity.class );
|
||||||
|
@ -91,8 +99,47 @@ public class ColumnCheckConstraintTest {
|
||||||
), "Check Constraints on OneToOne join table have not been created" );
|
), "Check Constraints on OneToOne join table have not been created" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXmlMappingJoinColumConstraintsAreApplied() throws Exception {
|
||||||
|
createSchema( "org/hibernate/orm/test/schemaupdate/checkconstraint/column/mapping.xml" );
|
||||||
|
String[] fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
|
.split( System.lineSeparator() );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
"TEST_ENTITY",
|
||||||
|
MANY_TO_ONE_JOIN_COLUMN_CONSTRAINTS
|
||||||
|
), "Check Constraints on ManyToOne join table have not been created" );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
"TEST_ENTITY",
|
||||||
|
ONE_TO_ONE_JOIN_COLUMN_CONSTRAINTS
|
||||||
|
), "Check Constraints on OneToOne join table have not been created" );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
"ANOTHER_TEST_ENTITY",
|
||||||
|
ONE_TO_MANY_JOIN_COLUMN_CONSTRAINTS
|
||||||
|
), "Check Constraints on OneToOne join table have not been created" );
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testJoinColumOfJoinTableConstraintsAreApplied() throws Exception {
|
public void testJoinColumOfJoinTableConstraintsAreApplied() throws Exception {
|
||||||
|
createSchema( "org/hibernate/orm/test/schemaupdate/checkconstraint/column/mapping.xml" );
|
||||||
|
String[] fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
|
.split( System.lineSeparator() );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
"MANY_T0_MANY_TABLE",
|
||||||
|
MANY_TO_MANY_JOIN_COLUMN_CONSTRAINTS
|
||||||
|
), "Join column Check Constraints on ManyToMany join table have not been created" );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
"MANY_T0_MANY_TABLE",
|
||||||
|
MANY_TO_MANY_INVERSE_JOIN_COLUMN_CONSTRAINTS
|
||||||
|
), "Inverse join column Check Constraints on ManyToMany join table have not been created" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXmlMappingJoinColumOfJoinTableConstraintsAreApplied() throws Exception {
|
||||||
createSchema( TestEntity.class, AnotherTestEntity.class );
|
createSchema( TestEntity.class, AnotherTestEntity.class );
|
||||||
String[] fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
String[] fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
.split( System.lineSeparator() );
|
.split( System.lineSeparator() );
|
||||||
|
@ -150,4 +197,20 @@ public class ColumnCheckConstraintTest {
|
||||||
.setFormat( false )
|
.setFormat( false )
|
||||||
.create( EnumSet.of( TargetType.SCRIPT ), metadata );
|
.create( EnumSet.of( TargetType.SCRIPT ), metadata );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createSchema(String... xmlMapping) {
|
||||||
|
final MetadataSources metadataSources = new MetadataSources( ssr );
|
||||||
|
|
||||||
|
for ( String xml : xmlMapping ) {
|
||||||
|
metadataSources.addResource( xml );
|
||||||
|
}
|
||||||
|
metadata = (MetadataImplementor) metadataSources.buildMetadata();
|
||||||
|
metadata.orderColumns( false );
|
||||||
|
metadata.validate();
|
||||||
|
new SchemaExport()
|
||||||
|
.setHaltOnError( true )
|
||||||
|
.setOutputFile( output.getAbsolutePath() )
|
||||||
|
.setFormat( false )
|
||||||
|
.create( EnumSet.of( TargetType.SCRIPT ), metadata );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,4 +117,60 @@ public class TestEntity {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
private Another another;
|
private Another another;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnotherTestEntity getEntity() {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEntity(AnotherTestEntity entity) {
|
||||||
|
this.entity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnotherTestEntity getTestEntity() {
|
||||||
|
return testEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTestEntity(AnotherTestEntity testEntity) {
|
||||||
|
this.testEntity = testEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AnotherTestEntity> getTestEntities() {
|
||||||
|
return testEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTestEntities(List<AnotherTestEntity> testEntities) {
|
||||||
|
this.testEntities = testEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AnotherTestEntity> getTestEntities2() {
|
||||||
|
return testEntities2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTestEntities2(List<AnotherTestEntity> testEntities2) {
|
||||||
|
this.testEntities2 = testEntities2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Another getAnother() {
|
||||||
|
return another;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnother(Another another) {
|
||||||
|
this.another = another;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,4 +11,20 @@ public class AnotherTestEntity implements Another {
|
||||||
|
|
||||||
@Column(name = "FIRST_NAME")
|
@Column(name = "FIRST_NAME")
|
||||||
private String firstName;
|
private String firstName;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstName() {
|
||||||
|
return firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstName(String firstName) {
|
||||||
|
this.firstName = firstName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,5 +107,69 @@ public class EntityWithSecondaryTables {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
private Another another;
|
private Another another;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSecondName() {
|
||||||
|
return secondName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSecondName(String secondName) {
|
||||||
|
this.secondName = secondName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnotherTestEntity getEntity() {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEntity(AnotherTestEntity entity) {
|
||||||
|
this.entity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnotherTestEntity getTestEntity() {
|
||||||
|
return testEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTestEntity(AnotherTestEntity testEntity) {
|
||||||
|
this.testEntity = testEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AnotherTestEntity> getTestEntities() {
|
||||||
|
return testEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTestEntities(List<AnotherTestEntity> testEntities) {
|
||||||
|
this.testEntities = testEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<AnotherTestEntity> getTestEntities2() {
|
||||||
|
return testEntities2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTestEntities2(List<AnotherTestEntity> testEntities2) {
|
||||||
|
this.testEntities2 = testEntities2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Another getAnother() {
|
||||||
|
return another;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnother(Another another) {
|
||||||
|
this.another = another;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,13 +29,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
@JiraKey("HHH-18054")
|
@JiraKey("HHH-18054")
|
||||||
@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsColumnCheck.class)
|
@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsColumnCheck.class)
|
||||||
public class TableCheckConstraintTest {
|
public class TableCheckConstraintTest {
|
||||||
static final String CONSTRAINTS = "NAME_COLUMN <> null";
|
static final String CONSTRAINTS = "NAME_COLUMN is not null";
|
||||||
static final String SECONDARY_TABLE_CONSTRAINTS = "SECOND_NAME <> null";
|
static final String SECONDARY_TABLE_CONSTRAINTS = "SECOND_NAME is not null";
|
||||||
static final String ONE_TO_ONE_JOIN_TABLE_CONSTRAINTS = "ID <> null";
|
static final String ONE_TO_ONE_JOIN_TABLE_CONSTRAINTS = "ID is not null";
|
||||||
static final String ONE_TO_MANY_JOIN_TABLE_CONSTRAINTS = "ID > 2";
|
static final String ONE_TO_MANY_JOIN_TABLE_CONSTRAINTS = "ID = 2";
|
||||||
static final String MANY_TO_ONE_JOIN_TABLE_CONSTRAINTS = "ID > 3 ";
|
static final String MANY_TO_ONE_JOIN_TABLE_CONSTRAINTS = "ID = 3";
|
||||||
static final String MANY_TO_MANY_JOIN_TABLE_CONSTRAINTS = "ID > 4";
|
static final String MANY_TO_MANY_JOIN_TABLE_CONSTRAINTS = "ID = 4";
|
||||||
static final String ANY_JOIN_TABLE_CONSTRAINTS = "ID > 5";
|
static final String ANY_JOIN_TABLE_CONSTRAINTS = "ID = 5";
|
||||||
|
|
||||||
static final String SECONDARY_TABLE_NAME = "SECOND_TABLE_NAME";
|
static final String SECONDARY_TABLE_NAME = "SECOND_TABLE_NAME";
|
||||||
static final String ONE_TO_ONE_JOIN_TABLE_NAME = "ONE_TO_ONE_JOIN_TABLE_NAME";
|
static final String ONE_TO_ONE_JOIN_TABLE_NAME = "ONE_TO_ONE_JOIN_TABLE_NAME";
|
||||||
|
@ -69,6 +69,14 @@ public class TableCheckConstraintTest {
|
||||||
assertThat( fileContent.toUpperCase( Locale.ROOT ) ).contains( CONSTRAINTS.toUpperCase( Locale.ROOT ) );
|
assertThat( fileContent.toUpperCase( Locale.ROOT ) ).contains( CONSTRAINTS.toUpperCase( Locale.ROOT ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXmlMappingTableConstraintsAreApplied() throws Exception {
|
||||||
|
createSchema( "org/hibernate/orm/test/schemaupdate/checkconstraint/table/mapping.xml" );
|
||||||
|
String fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
|
.replace( System.lineSeparator(), "" );
|
||||||
|
assertThat( fileContent.toUpperCase( Locale.ROOT ) ).contains( CONSTRAINTS.toUpperCase( Locale.ROOT ) );
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSecondaryTableConstraintsAreApplied() throws Exception {
|
public void testSecondaryTableConstraintsAreApplied() throws Exception {
|
||||||
createSchema( EntityWithSecondaryTables.class, AnotherTestEntity.class );
|
createSchema( EntityWithSecondaryTables.class, AnotherTestEntity.class );
|
||||||
|
@ -81,6 +89,18 @@ public class TableCheckConstraintTest {
|
||||||
), "Check Constraints on secondary table have not been created" );
|
), "Check Constraints on secondary table have not been created" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXmlMappingSecondaryTableConstraintsAreApplied() throws Exception {
|
||||||
|
createSchema( "org/hibernate/orm/test/schemaupdate/checkconstraint/table/mapping.xml" );
|
||||||
|
String[] fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
|
.split( System.lineSeparator() );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
SECONDARY_TABLE_NAME,
|
||||||
|
SECONDARY_TABLE_CONSTRAINTS
|
||||||
|
), "Check Constraints on secondary table have not been created" );
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testJoinTableConstraintsAreApplied() throws Exception {
|
public void testJoinTableConstraintsAreApplied() throws Exception {
|
||||||
createSchema( EntityWithSecondaryTables.class, AnotherTestEntity.class );
|
createSchema( EntityWithSecondaryTables.class, AnotherTestEntity.class );
|
||||||
|
@ -108,6 +128,33 @@ public class TableCheckConstraintTest {
|
||||||
), "Check Constraints on OneToOne join table have not been created" );
|
), "Check Constraints on OneToOne join table have not been created" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testXmlMappingJoinTableConstraintsAreApplied() throws Exception {
|
||||||
|
createSchema( "org/hibernate/orm/test/schemaupdate/checkconstraint/table/mapping.xml" );
|
||||||
|
String[] fileContent = new String( Files.readAllBytes( output.toPath() ) ).toLowerCase()
|
||||||
|
.split( System.lineSeparator() );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
MANY_TO_ONE_JOIN_TABLE_NAME,
|
||||||
|
MANY_TO_ONE_JOIN_TABLE_CONSTRAINTS
|
||||||
|
), "Check Constraints on ManyToOne join table have not been created" );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
MANY_TO_MANY_JOIN_TABLE_NAME,
|
||||||
|
MANY_TO_MANY_JOIN_TABLE_CONSTRAINTS
|
||||||
|
), "Check Constraints on ManyToMany join table have not been created" );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
ONE_TO_ONE_JOIN_TABLE_NAME,
|
||||||
|
ONE_TO_ONE_JOIN_TABLE_CONSTRAINTS
|
||||||
|
), "Check Constraints on OneToOne join table have not been created" );
|
||||||
|
assertTrue( tableCreationStatementContainsConstraints(
|
||||||
|
fileContent,
|
||||||
|
ONE_TO_MANY_JOIN_TABLE_NAME,
|
||||||
|
ONE_TO_MANY_JOIN_TABLE_CONSTRAINTS
|
||||||
|
), "Check Constraints on OneToOne join table have not been created" );
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAnyJoinTableConstraintsAreApplied() throws Exception {
|
public void testAnyJoinTableConstraintsAreApplied() throws Exception {
|
||||||
createSchema( EntityWithSecondaryTables.class, AnotherTestEntity.class );
|
createSchema( EntityWithSecondaryTables.class, AnotherTestEntity.class );
|
||||||
|
@ -150,4 +197,20 @@ public class TableCheckConstraintTest {
|
||||||
.setFormat( false )
|
.setFormat( false )
|
||||||
.create( EnumSet.of( TargetType.SCRIPT ), metadata );
|
.create( EnumSet.of( TargetType.SCRIPT ), metadata );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createSchema(String... xmlMapping) {
|
||||||
|
final MetadataSources metadataSources = new MetadataSources( ssr );
|
||||||
|
|
||||||
|
for ( String xml : xmlMapping ) {
|
||||||
|
metadataSources.addResource( xml );
|
||||||
|
}
|
||||||
|
metadata = (MetadataImplementor) metadataSources.buildMetadata();
|
||||||
|
metadata.orderColumns( false );
|
||||||
|
metadata.validate();
|
||||||
|
new SchemaExport()
|
||||||
|
.setHaltOnError( true )
|
||||||
|
.setOutputFile( output.getAbsolutePath() )
|
||||||
|
.setFormat( false )
|
||||||
|
.create( EnumSet.of( TargetType.SCRIPT ), metadata );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,4 +22,20 @@ public class TestEntity {
|
||||||
|
|
||||||
@Column(name = "NAME_COLUMN")
|
@Column(name = "NAME_COLUMN")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
~
|
||||||
|
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<entity-mappings xmlns="http://www.hibernate.org/xsd/orm/mapping" version="3.2">
|
||||||
|
<package>org.hibernate.orm.test.schemaupdate.checkconstraint.column</package>
|
||||||
|
<entity class="TestEntity" metadata-complete="true">
|
||||||
|
<table name="TEST_ENTITY"/>
|
||||||
|
<attributes>
|
||||||
|
<id name="id"/>
|
||||||
|
<basic name="name">
|
||||||
|
<column name="NAME_COLUMN">
|
||||||
|
<check-constraint name="column_constraint" constraint="name_column is not null" options="enforced"/>
|
||||||
|
</column>
|
||||||
|
</basic>
|
||||||
|
<basic name="name" >
|
||||||
|
<column name="NAME_COLUMN" />
|
||||||
|
</basic>
|
||||||
|
<many-to-one name="testEntity">
|
||||||
|
<join-column name="MANY_TO_ONE_JOIN_COLUMN_NAME">
|
||||||
|
<check-constraint name="MANY_TO_ONE_JOIN_COLUMN_CONSTRAINT" constraint="ID = 3"/>
|
||||||
|
</join-column>
|
||||||
|
</many-to-one>
|
||||||
|
<one-to-many name="testEntities">
|
||||||
|
<join-column name="ONE_TO_MAIN_JOIN_COLUMN_NAME">
|
||||||
|
<check-constraint name="ONE_TO_MANY_JOIN_COLUMN_CONSTRAINT" constraint="ID = 2"/>
|
||||||
|
</join-column>
|
||||||
|
</one-to-many>
|
||||||
|
<one-to-one name="entity">
|
||||||
|
<join-column name="ONE_TO_ONE_JOIN_COLUMN_NAME">
|
||||||
|
<check-constraint name="ONE_TO_ONE_JOIN_COLUMN_CONSTRAINT" constraint="ID is not null"/>
|
||||||
|
</join-column>
|
||||||
|
</one-to-one>
|
||||||
|
<many-to-many name="testEntities2">
|
||||||
|
<join-table name="MANY_T0_MANY_TABLE">
|
||||||
|
<join-column name="MANY_TO_MANY_JOIN_COLUMN_NAME">
|
||||||
|
<check-constraint name="MANY_TO_MANY_JOIN_COLUMN_CONSTRAINT" constraint="ID = 4"/>
|
||||||
|
</join-column>
|
||||||
|
<inverse-join-column name="MANY_TO_MANY_INVERSE_JOIN_COLUMN_NAME">
|
||||||
|
<check-constraint name="MANY_TO_MANY_INVERSE_JOIN_COLUMN_CONSTRAINT" constraint="ID = 5"/>
|
||||||
|
</inverse-join-column>
|
||||||
|
</join-table>
|
||||||
|
</many-to-many>
|
||||||
|
<transient name="another"/>
|
||||||
|
</attributes>
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
<entity class="AnotherTestEntity" metadata-complete="true">
|
||||||
|
<table name="ANOTHER_TEST_ENTITY"/>
|
||||||
|
<attributes>
|
||||||
|
<id name="id"/>
|
||||||
|
<basic name="firstName">
|
||||||
|
<column name="FIRST_NAME"/>
|
||||||
|
</basic>
|
||||||
|
</attributes>
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
</entity-mappings>
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
~
|
||||||
|
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
-->
|
||||||
|
<entity-mappings xmlns="http://www.hibernate.org/xsd/orm/mapping" version="3.2">
|
||||||
|
<package>org.hibernate.orm.test.schemaupdate.checkconstraint.table</package>
|
||||||
|
<entity class="TestEntity" metadata-complete="true">
|
||||||
|
<table name="TEST_ENTITY_TABLE">
|
||||||
|
<check-constraint name="TEST_ENTITY_TABLE" constraint="NAME_COLUMN is not null"/>
|
||||||
|
</table>
|
||||||
|
<attributes>
|
||||||
|
<id name="id"/>
|
||||||
|
<basic name="name">
|
||||||
|
<column name="NAME_COLUMN"/>
|
||||||
|
</basic>
|
||||||
|
<basic name="name" >
|
||||||
|
<column name="NAME_COLUMN" />
|
||||||
|
</basic>
|
||||||
|
</attributes>
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
<entity class="EntityWithSecondaryTables" metadata-complete="true">
|
||||||
|
<secondary-table name="SECOND_TABLE_NAME">
|
||||||
|
<check-constraint name="TABLE_CONSTRAINT" constraint="SECOND_NAME is not null"/>
|
||||||
|
</secondary-table>
|
||||||
|
<attributes>
|
||||||
|
<id name="id"/>
|
||||||
|
<basic name="name">
|
||||||
|
<column name="NAME_COLUMN"/>
|
||||||
|
</basic>
|
||||||
|
<basic name="secondName" >
|
||||||
|
<column name="SECOND_NAME" table="SECOND_TABLE_NAME" />
|
||||||
|
</basic>
|
||||||
|
<many-to-one name="testEntity">
|
||||||
|
<join-table name="MANY_TO_ONE_JOIN_TABLE_NAME">
|
||||||
|
<check-constraint name="MANY_TO_ONE_JOIN_TABLE_CONSTRAINT" constraint="ID = 3"/>
|
||||||
|
</join-table>
|
||||||
|
</many-to-one>
|
||||||
|
<one-to-many name="testEntities">
|
||||||
|
<join-table name="ONE_TO_MAIN_JOIN_TABLE_NAME">
|
||||||
|
<check-constraint name="ONE_TO_MANY_JOIN_TABLE_CONSTRAINT" constraint="ID = 2"/>
|
||||||
|
</join-table>
|
||||||
|
</one-to-many>
|
||||||
|
<one-to-one name="entity">
|
||||||
|
<join-table name="ONE_TO_ONE_JOIN_TABLE_NAME">
|
||||||
|
<check-constraint name="ONE_TO_ONE_JOIN_TABLE_CONSTRAINT" constraint="ID is not null"/>
|
||||||
|
</join-table>
|
||||||
|
</one-to-one>
|
||||||
|
<many-to-many name="testEntities2">
|
||||||
|
<join-table name="MANY_TO_MANY_JOIN_TABLE_NAME">
|
||||||
|
<check-constraint name="MANY_TO_MANY_JOIN_TABLE_CONSTRAINT" constraint="ID = 4"/>
|
||||||
|
</join-table>
|
||||||
|
</many-to-many>
|
||||||
|
<transient name="another"/>
|
||||||
|
</attributes>
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
<entity class="AnotherTestEntity" metadata-complete="true">
|
||||||
|
<attributes>
|
||||||
|
<id name="id"/>
|
||||||
|
<basic name="firstName">
|
||||||
|
<column name="FIRST_NAME"/>
|
||||||
|
</basic>
|
||||||
|
</attributes>
|
||||||
|
</entity>
|
||||||
|
|
||||||
|
</entity-mappings>
|
Loading…
Reference in New Issue