HHH-17653 Add test for issue
This commit is contained in:
parent
240514986d
commit
4ba772b72d
|
@ -0,0 +1,70 @@
|
||||||
|
package org.hibernate.orm.test.idgen;
|
||||||
|
|
||||||
|
import org.hibernate.AnnotationException;
|
||||||
|
import org.hibernate.boot.MetadataSources;
|
||||||
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
|
import org.hibernate.boot.spi.MetadataImplementor;
|
||||||
|
import org.hibernate.service.ServiceRegistry;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.junit.BaseUnitTest;
|
||||||
|
import org.hibernate.testing.orm.junit.DialectFeatureChecks;
|
||||||
|
import org.hibernate.testing.orm.junit.Jira;
|
||||||
|
import org.hibernate.testing.orm.junit.RequiresDialectFeature;
|
||||||
|
import org.hibernate.testing.util.ServiceRegistryUtil;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import jakarta.persistence.Embeddable;
|
||||||
|
import jakarta.persistence.Embedded;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.GeneratedValue;
|
||||||
|
import jakarta.persistence.GenerationType;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
|
@BaseUnitTest
|
||||||
|
@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsIdentityColumns.class)
|
||||||
|
@Jira("HHH-17653")
|
||||||
|
public class GeneratorNotAppliedToIdEmbeddableFieldsShouldThrowAnExceptionTest {
|
||||||
|
protected ServiceRegistry serviceRegistry;
|
||||||
|
protected MetadataImplementor metadata;
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void tearDown() {
|
||||||
|
StandardServiceRegistryBuilder.destroy( serviceRegistry );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testThatAnAnnotationExceptionIsThrown() {
|
||||||
|
Exception exception = assertThrows( AnnotationException.class, () -> {
|
||||||
|
serviceRegistry = ServiceRegistryUtil.serviceRegistry();
|
||||||
|
metadata = (MetadataImplementor) new MetadataSources( serviceRegistry )
|
||||||
|
.addAnnotatedClass( TestEntity.class )
|
||||||
|
.buildMetadata();
|
||||||
|
} );
|
||||||
|
assertThat( exception.getMessage() ).contains( "Property 'serialValue'" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(name = "TestEntity")
|
||||||
|
@Table(name = "TEST_ENITY")
|
||||||
|
public static class TestEntity {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
private TestEmbeddable testEmbeddable;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Embeddable
|
||||||
|
public static class TestEmbeddable {
|
||||||
|
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Integer serialValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
package org.hibernate.orm.test.idgen;
|
||||||
|
|
||||||
|
import org.hibernate.AnnotationException;
|
||||||
|
import org.hibernate.boot.MetadataSources;
|
||||||
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
|
import org.hibernate.boot.spi.MetadataImplementor;
|
||||||
|
import org.hibernate.service.ServiceRegistry;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.junit.BaseUnitTest;
|
||||||
|
import org.hibernate.testing.orm.junit.DialectFeatureChecks;
|
||||||
|
import org.hibernate.testing.orm.junit.Jira;
|
||||||
|
import org.hibernate.testing.orm.junit.RequiresDialectFeature;
|
||||||
|
import org.hibernate.testing.util.ServiceRegistryUtil;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.GeneratedValue;
|
||||||
|
import jakarta.persistence.GenerationType;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
|
@BaseUnitTest
|
||||||
|
@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsIdentityColumns.class)
|
||||||
|
@Jira("HHH-17653")
|
||||||
|
public class GeneratorNotAppliedToIdFieldsShouldThrowAnExceptionTest {
|
||||||
|
protected ServiceRegistry serviceRegistry;
|
||||||
|
protected MetadataImplementor metadata;
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void tearDown() {
|
||||||
|
StandardServiceRegistryBuilder.destroy( serviceRegistry );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testThatAnAnnotationExceptionIsThrown() {
|
||||||
|
Exception exception = assertThrows( AnnotationException.class, () -> {
|
||||||
|
serviceRegistry = ServiceRegistryUtil.serviceRegistry();
|
||||||
|
metadata = (MetadataImplementor) new MetadataSources( serviceRegistry )
|
||||||
|
.addAnnotatedClass( TestEntity.class )
|
||||||
|
.buildMetadata();
|
||||||
|
} );
|
||||||
|
assertThat( exception.getMessage() ).contains( "Property '" + TestEntity.class.getName() + ".name'" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(name = "TestEntity")
|
||||||
|
@Table(name = "TEST_ENITY")
|
||||||
|
public static class TestEntity {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue