[ 
https://issues.apache.org/jira/browse/OPENJPA-1787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13004237#comment-13004237
 ] 

Michael Dick commented on OPENJPA-1787:
---------------------------------------

The main problem with your proposed solution is that it would change the way 
merge works. EntityManager.merge creates a new copy of the entity and it's the 
copy of the entity that becomes part of the persistence context - not the 
entity you passed in. Your change would eliminate the copy.

I think the real issue here is that the data hasn't been copied into the new 
instance before validation occurs. I'm not familiar with this code path, and I 
haven't had a chance to try your testcase yet, but I'd start by looking at the 
code where we copy the fields into a new instance. 

> Bean validation fails merging a new entity
> ------------------------------------------
>
>                 Key: OPENJPA-1787
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1787
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa, kernel
>    Affects Versions: 2.0.1, 2.1.0, 2.2.0
>            Reporter: Oliver Ringel
>            Priority: Critical
>         Attachments: com.example.TestEmployeeDAO.txt, openjpa-1787.tar, 
> testcase-openjpa-1787.tar
>
>
> The bean validation is not working correctly
> If you try to merge a new entity.
>         EntityManager em = entityManagerFactory.createEntityManager();
>         Person person = new Person();
>         person.setName("Oliver");                               // 
> Employee.name is annotated @NotNull 
>         person = em.merge(person);                            
> you get a ConstraintValidationException, although name is set. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to