[hibernate-issues] [JIRA] (HHH-13898) BeanValidationListener not called for collection updates in ManyToMany relationships

Marek Šabo (JIRA) jira at hibernate.atlassian.net
Fri Mar 20 19:46:44 EDT 2020


Marek Šabo ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=5a39c88de8dc74376d64ea21 ) *updated* an issue

Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYzE3ZjFiZDZhZmI2NDdiNzhjZmNhNTI0YTkwNzA1MGQiLCJwIjoiaiJ9 ) / Bug ( https://hibernate.atlassian.net/browse/HHH-13898?atlOrigin=eyJpIjoiYzE3ZjFiZDZhZmI2NDdiNzhjZmNhNTI0YTkwNzA1MGQiLCJwIjoiaiJ9 ) HHH-13898 ( https://hibernate.atlassian.net/browse/HHH-13898?atlOrigin=eyJpIjoiYzE3ZjFiZDZhZmI2NDdiNzhjZmNhNTI0YTkwNzA1MGQiLCJwIjoiaiJ9 ) BeanValidationListener not called for collection updates in ManyToMany relationships ( https://hibernate.atlassian.net/browse/HHH-13898?atlOrigin=eyJpIjoiYzE3ZjFiZDZhZmI2NDdiNzhjZmNhNTI0YTkwNzA1MGQiLCJwIjoiaiJ9 )

Change By: Marek Šabo ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=5a39c88de8dc74376d64ea21 )

I have a class User mapped with roles like this:

{code:java}
@Entity
@Table(name = "user")
public class User extends BaseEntity<String> {

@Id
@Column(name = "id", nullable = false, updatable = false)
private String isid;

@Column(name = "first_name")
private String firstName;

@Column(name = "last_name")
private String lastName;

@Size(min = 1, max = 2)
@ManyToMany
@JoinTable(name = "user_roles",
joinColumns = @JoinColumn(name = "id", referencedColumnName = "user_id",
nullable = false, insertable = false, updatable = false),
inverseJoinColumns = {
@JoinColumn(name = "id", referencedColumnName = "role_id",
nullable = false, insertable = false, updatable = false),
@JoinColumn(name = "role_type_id", referencedColumnName = "role_type_id",
nullable = false, insertable = false, updatable = false)
}
)
@WhereJoinTable(clause = "role_type_id = 7")
private List<Role> sevenRoles;
{code}

Works as expected for reads and inserts. However, if I try to insert third role into the collection (max size 2) it will persist instead of failing because *BeanValidationListener* is not bound to *CollectionUpdateAction*.
for comparison, if I simultaneously change the firstName/lastName, then the EntityUpdateAction is fired instead which has the *BeanValidationListener* bound and called during its  _preUpdate_ call.

If this isn’t a bug, please advise how to achieve BeanValidation triggering also during updates of collection properties.

( https://hibernate.atlassian.net/browse/HHH-13898#add-comment?atlOrigin=eyJpIjoiYzE3ZjFiZDZhZmI2NDdiNzhjZmNhNTI0YTkwNzA1MGQiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-13898#add-comment?atlOrigin=eyJpIjoiYzE3ZjFiZDZhZmI2NDdiNzhjZmNhNTI0YTkwNzA1MGQiLCJwIjoiaiJ9 )

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.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100122- sha1:767d807 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200320/b0f69963/attachment.html 


More information about the hibernate-issues mailing list