Hello I am currently using vesion 5.3.15 java 8, and I am doing a test ride to migrate to vesion 5.4.11, and java 11
I have a NullPointerException error on a query with an embedded table structure like here
Tab1
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(column = @JoinColumn(name="ida", referencedColumnName="ida")),
@JoinColumnOrFormula(column = @JoinColumn(name="idb", referencedColumnName="idb")),
@JoinColumnOrFormula(formula=@JoinFormula(value="'A'", referencedColumnName="pref"))
})
private Tab2 prop;
Tab2
...
@EmbeddedId
@AttributeOverride(name = "ida", column = @Column(name = "IDA", nullable = false, length = 2))
@AttributeOverride(name = "idb", column = @Column(name = "IDB", nullable = false, length = 2))
@AttributeOverride(name = "pref", column = @Column(name = "PREF", nullable = false, length = 2))
private Tab2Id id;
Tab2Id
...
@Embeddable
@Data
public class Tab2Id implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 7939307649952007941L;
@Column(name = "IDA", nullable = false, length = 2)
@ColumnTransformer(write="upper(?)")
private String ida;
@Column(name = "IDB", nullable = false, length = 2)
@ColumnTransformer(write="upper(?)")
private String idb;
@Column(name = "PREF", nullable = false, length = 2)
@ColumnTransformer(write="upper(?)")
private String pref;
}
Is there something wrongly coded, thanks in advance for your help
works in 5.3.15 and not works in 5.4.11
CriteriaBuilder builder = session.getCriteriaBuilder(); CriteriaQuery<Tab1> query = builder.createQuery(Tab1.class); Root<Tab1> root = query.from(Tab1.class); query.where(builder.equal(root.get(Tab1_.PROP).get(Tab2_.ID).get(Tab2Id_.IDA),"XX")); List<Tab1> list = session.createQuery(query).getResultList();
works in 5.3.15 and 5.4.11
CriteriaBuilder builder = session.getCriteriaBuilder(); CriteriaQuery<Tab2> query = builder.createQuery(Tab2.class); Root<Tab2> root = query.from(Tab2.class); query.where(builder.equal(root.get(Tab2_.ID).get(Tab2Id_.IDA),"XX")); List<Tab2> list = session.createQuery(query).getResultList();
Message :
java.lang.NullPointerException
at org.hibernate.persister.entity.AbstractPropertyMapping.toColumns (AbstractPropertyMapping.java:95)
at org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns (BasicEntityPropertyMapping.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.toColumns (AbstractEntityPersister.java:2014)