Are you passing the id in the call from your jsp? If you are not, then
Hibernate will think these are new entities and save rather than update
them.

Mike

On 10/22/07, syg6 <[EMAIL PROTECTED]> wrote:
>
>
> Yep. I left it out for brevity. Besides, I don't think Hibernate would be
> able to do the inserts if I hadn't defined a PK, no?
>
> Anyway, here it is:
>
> @Column(name="idAAndBJoin")
> @Id @GeneratedValue(strategy = GenerationType.AUTO)
> public Long getId()
>
> Man, I got quite excited for a minute there. But alas, that's not the
> problem ...
>
> Bob
>
>
> Mike Horwitz wrote:
> >
> > Have you assigned a primary key field to your AAndBJoin object?
> >
> > Mike.
> >
> > On 10/22/07, syg6 <[EMAIL PROTECTED]> wrote:
> >>
> >>
> >> Hello listers.
> >>
> >> I have posted on this before. I got no replies, either here or over at
> >> hibernate.org. So I parked the issue and moved on but now I have to
> deal
> >> with it. Because of my limited Hibernate knowledge, I am not even
> really
> >> sure of what things to try anymore. Can someone shed some light on this
> >> problem for me?
> >>
> >> I have two Objects, ObjectA and ObjectB. They have a ManyToMany
> >> relationship
> >> with attributes, meaning they have a join table with IdObjectA and
> >> IdObjectB
> >> as foreign keys and some attributes. As recommended by the Hibernate
> >> docs,
> >> I
> >> create a class, AAndBJoin we'll call it. Here's what it all looks like:
> >>
> >> public class ObjectA
> >> {
> >> private Set<AAndBJoin> aAndBJoins;
> >>
> >> @OneToMany(mappedBy="ObjectA", fetch = FetchType.EAGER, cascade = {
> >> CascadeType.ALL })
> >>        public Set<AAndBJoin> getAAndBJoins ()
> >>
> >> public class ObjectB
> >> {
> >> private Set<AAndBJoin> aAndBJoins;
> >>
> >> @OneToMany(mappedBy="ObjectB")
> >>        public Set<AAndBJoin> getAAndBJoins ()
> >>
> >> public class AAndBJoin
> >> {
> >>        private ObjectA objectA;
> >>        private ObjectB objectB;
> >>
> >> @ManyToOne
> >> @JoinColumn(name="idObjectA")
> >> public ObjectA getObjectA()
> >>
> >> @ManyToOne
> >> @JoinColumn(name="idObjectB")
> >> public ObjectB getObjectB()
> >>
> >> The problem is that when I save an ObjectA, with its associated Set of
> >> AAndBJoin Objects, ONLY inserts are done in the AAndBJoin table in the
> >> database, any existing information is NOT being updated or deleted. So
> if
> >> I
> >> start off with 2 AAndBJoin Objects and add 1, instead of having 3 I now
> >> have
> >> 5 because 3 inserts are performed, one for each AAndBJoin Object sent
> to
> >> the
> >> FormController from the .jsp, but the original 2 are left untouched.
> >>
> >> Do I have to play with the AAndBJoin Object, like add Cascade
> information
> >> or
> >> something else? In the example there was none, and I have tried putting
> >> Cascade.ALL for the two getters, no dice. Or perhaps I have to do
> >> something
> >> manually, like call session.flush() or something, to get Hibernate to
> >> (worst
> >> case scenario) delete the info in the AAndBJoin table first before
> >> inserting? I am not sure even how to do this since Spring is in the
> mix.
> >> I
> >> have tried debugging Hibernate to see what's going on but since Spring
> is
> >> involved and uses Reflection and AopProxies and all kinds of stuff I
> >> haven't
> >> a clue about, I never actually see any Hibernate code executed ...
> >>
> >> I would really appreciate some help on this one!
> >>
> >> Bob
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Many-to-many-collection-problem-tf4670322s2369.html#a13341640
> >> Sent from the AppFuse - User mailing list archive at Nabble.com.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Many-to-many-collection-problem-tf4670322s2369.html#a13343413
> Sent from the AppFuse - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to