[JIRA] (HHH-16309) Envers misses columns of hierarchical Embeddables with MappedSuperClass
by Jones (JIRA)
Jones ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiOTk2OTBhYjhm... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16309?atlOrigin=eyJpIjoiOTk2OT... ) HHH-16309 ( https://hibernate.atlassian.net/browse/HHH-16309?atlOrigin=eyJpIjoiOTk2OT... ) Envers misses columns of hierarchical Embeddables with MappedSuperClass ( https://hibernate.atlassian.net/browse/HHH-16309?atlOrigin=eyJpIjoiOTk2OT... )
Issue Type: Bug Affects Versions: 6.1.7, 6.2.0.CR3 Assignee: Chris Cranford ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) Components: hibernate-envers Created: 15/Mar/2023 00:11 AM Priority: Major Reporter: Jones ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... )
Given:
* Entity with embedded
* Embeddable with abstract parent class defining 1 or more properties and annotated with MappedSuperClass
When:
* generate ddl
Then:
* entity tables have all columns correctly created
* Generated aud table misses columns from parent class of the embeddable component
@Audited
@Entity
@Table(name = "MY_TABLE" )
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID" )
private Integer id;
@Embedded
@AttributeOverride(name = "parentEmbeddableProp" , column = @Column(name = "PARENT_EMBEDDABLE_COLUMN" ))
@AttributeOverride(name = "myEmbeddableProp" , column = @Column(name = "MY_EMBEDDABLE_COLUMN" ))
private MyEmbeddable myEmbeddable = new MyEmbeddable();
}
@Embeddable
@MappedSuperclass
public abstract class AbstractEmbeddable {
@Column(length = 123)
private String parentEmbeddableProp;
}
@Embeddable
public class MyEmbeddable extends AbstractEmbeddable {
@Column(length = 456)
private String myEmbeddableProp;
}
Hibernate:
create table MY_TABLE (
ID integer not null,
MY_EMBEDDABLE_COLUMN varchar(255),
PARENT_EMBEDDABLE_COLUMN varchar(255),
primary key (ID)
)
Hibernate:
create table MY_TABLE_AUD (
ID integer not null,
REV integer not null,
REVTYPE tinyint,
MY_EMBEDDABLE_COLUMN varchar(255),
primary key (REV, ID)
)
the non-aud table seems fine
The aud table misses columns.
Reproducible test case to be attached
( https://hibernate.atlassian.net/browse/HHH-16309#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16309#add-comment?atlOrigin=ey... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100217- sha1:fd7c927 )
3 years, 1 month
[JIRA] (HHH-16308) NullPointerException when using CriteriaBuilder.function() inside CriteriaBuilder.construct()
by Archie Cobbs (JIRA)
Archie Cobbs ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *commented* on HHH-16308 ( https://hibernate.atlassian.net/browse/HHH-16308?atlOrigin=eyJpIjoiMjQ1MW... )
Re: NullPointerException when using CriteriaBuilder.function() inside CriteriaBuilder.construct() ( https://hibernate.atlassian.net/browse/HHH-16308?atlOrigin=eyJpIjoiMjQ1MW... )
Also - the original bug that I was trying to reproduce threw this exception:
java.lang.NullPointerException: Cannot invoke "org.hibernate.type.Type.getColumnSpan(org.hibernate.engine.spi.Mapping)" because "types[i]" is null
at org.hibernate.hql.internal.NameGenerator.generateColumnNames(NameGenerator.java:27)
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.generateColumnNames(SessionFactoryHelper.java:435)
at org.hibernate.hql.internal.ast.tree.SelectClause.initializeColumnNames(SelectClause.java:308)
at org.hibernate.hql.internal.ast.tree.SelectClause.finishInitialization(SelectClause.java:298)
at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:268)
at org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:1039)
at org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:807)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:703)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:339)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:287)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:276)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162)
at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:811)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl$1.buildCompiledQuery(CriteriaQueryImpl.java:314)
at org.hibernate.query.criteria.internal.compile.CriteriaCompiler.compile(CriteriaCompiler.java:171)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:774)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114)
Probably due to the same underlying problem but thought I’d mention it.
( https://hibernate.atlassian.net/browse/HHH-16308#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16308#add-comment?atlOrigin=ey... )
Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100217- sha1:7167dc8 )
3 years, 1 month