Will the code I just created (in response to your answer) help in the
FAQ (My own DAO objects, not IbatisDAO)?
public Object insert(Avp avp) throws SQLException {
//insert Master record
Object returnVal = this.getSqlMap().insert("insertAvp", avp) ;
//iterate through associated List and insert results
for (int i=0; i<(avp).getWares().size();i++) {
Ware ware = (Ware)(avp).getWares().get(i) ;
ware.setAvp(avp.getId()) ;
this.getSqlMap().insert("insertWare", ware ) ;
}
return returnVal ;
}
-----Original Message-----
From: Clinton Begin [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 01, 2005 12:17 PM
To: [email protected]
Subject: Re: 1:M relations, cascading inserts, etc...
The best practice approach is to have separate <insert> statements and
call each individually from with your DAO code within a normal for loop.
The <iterate> element was never meant to be used for supporting multiple
insert/update/delete statements.
This is a common confusion. Perhaps something in the FAQ would be a
good idea.
Clinton
On Tue, 1 Feb 2005 10:52:57 -0500, Akins, Greg <[EMAIL PROTECTED]>
wrote:
>
> Trying to find the best approach to a 1:M relationship.
> (Apologize ahead if I'm missing something)
>
>
> class master {
> private List children ;
> public void setChildren(List list){}
> public List getChildren() {}
> }
>
> The suggestions from the mail archives seem to indicate two
> possibilities
>
> <sqlMap...
> insert into master values(...) ;
> <iterate id=children>
> insert into Childvalues(..) ;
> </iterate>
> </sqlMap
>
> or....
>
> Master master = new Master() ;
>
> Child child = new Child() ;
> master.getChildren().add(child) ;
>
> MasterDAO.save(master) ;
>
> child.setParent(master) ;
> ChildDAO.save(child) ;
>
> Using the first approach causes me to create multiple insert
> statements for a "Child" insert (One in the Master mapping, one in the
> child mapping... Is there a way to define links to other statements?
> Using the second approach causes me to use "Relational" constructs to
> describe a Object mapping.
>
>
>
>
> Greg Akins
> Software Engineer
> Sony Electronics, STP Systems
> 724.696.7322 (Sony)
> 724.696.6147 (AV)
> 724.454.7790 (Cell)
> 412.590.3973 (Pager)
>