It's a little new to me so I keep having to read it to get the hang of its uses. What I am finding is that with the pop-up I wrote it seems like a user might be not logging out of the application that it is originating from, or not closing out the browser when they are completed with the application, or something to that effect because now I'm thinking that the conflict is also because the session data is not clearing out. I think what is happening is that someone is coming up behind another person and receiving the pop-up with the data from the person before them. And, they are making selections thinking it applies to them when in fact it doesn't. So even though I'm creating new objects it's as if it's taking a mixture of data between users from the database and the attributes that are received from login and creating duplicates.
I was able to eliminate the duplicate objects from the main Person record by replacing merge with saveOrUpdate() but the one-to-many objects that it refers to are now duplicating, which are the Person's items that they are selecting from the pop-up selection list. When the person makes an item selection it should update their item with 'yes'. But, in case it is updating the items but also creating new ones with 'no'. Perhaps, removing the merge() and replacing it with the saveOrUpdate() now from that section may solve it.
So for example
If you have any further suggestions I'd appreciate it.