[JIRA] (HHH-13898) BeanValidationListener not called for collection updates in ManyToMany relationships
by Marek Šabo (JIRA)
Marek Šabo ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=5a39c88... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYjI3Y2M5OWU3... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-13898?atlOrigin=eyJpIjoiYjI3Y2... ) HHH-13898 ( https://hibernate.atlassian.net/browse/HHH-13898?atlOrigin=eyJpIjoiYjI3Y2... ) BeanValidationListener not called for collection updates in ManyToMany relationships ( https://hibernate.atlassian.net/browse/HHH-13898?atlOrigin=eyJpIjoiYjI3Y2... )
Issue Type: Bug Affects Versions: 5.4.10 Assignee: Unassigned Components: hibernate-core Created: 20/Mar/2020 16:45 PM Priority: Major Reporter: Marek Šabo ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=5a39c88... )
I have a class User mapped with roles like this:
@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;
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.
( https://hibernate.atlassian.net/browse/HHH-13898#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-13898#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#100122- sha1:767d807 )
4 years, 9 months