[jboss-user] [EJB 3.0] - Not understanding detached entities and merge()
SmokingAPipe
do-not-reply at jboss.com
Wed Feb 14 20:46:24 EST 2007
Here's the situation:
I have an entity that refers to other entities, like this:
@Entity public class Invoice implements Serializable {
| @ManyToOne private transient Customer customer;
| }
It must implement Serializable so I can send it to message queues.
I labeled the customer field as transient, because I don't want it to serialize and send the entire Customer object every time (that object has a bunch of its own fields).
So, because that's transient, this Invoice entity shows up, is de-seriaiized, and the customer field is null of course.
I then do
invoice = entityManager.merge(invoice);
to re-attach this now-detached entity. But when I do that, the customer field gets set to null in the DB. It is taking the state from the un-serialized object and writing over what's in the DB.
That's not what I want it to do, of course.
What's the right way to do this kind of thing? An easy work around I have is to use entityManager.find(Invoice.class, invoice.getId()) but that seems wrong.
Ideas?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4016805#4016805
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4016805
More information about the jboss-user
mailing list