I've just upgraded Spring Boot, which upgraded Hibernate ORM from 5.4.12.Final to 5.4.18.Final
I have an association
{code:java}@javax.persistence.ManyToOne(fetch = FetchType.LAZY) @javax.validation.constraints.NotNull private Product product;{code}
I have logic that inspects metadata and collects nullable associations of an entity
{code:java}List<Attribute<?, ?>> fields = new ArrayList<>();
fields.addAll(entityType.getSingularAttributes().stream() .filter(singularAttribute -> singularAttribute.isAssociation() && singularAttribute.getType() instanceof EntityType && singularAttribute.isOptional()) .collect(Collectors.toList()));
return fields;{code}
where `entityType` is `javax.persistence.metamodel.EntityType`
Previously, the `isOptional` honoured the `NotNull` constraint and returned false, now it returns true which breaks my logic. I'm not yet sure if this is a miss-configuration by Spring Boot or by my application or if it's a bug in Hibernate, but with the upgrade this changed unexpectedly.
So far I’ve been able to verify, that `org.hibernate.cfg.beanvalidation.TypeSafeActivator` is in fact initialized with the application. |
|