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]
>
>

Reply via email to