ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Kalmykov" <akalmy...@openwaygroup.com>
Subject RE: insert/update objects graph
Date Wed, 20 Feb 2008 16:36:24 GMT
May be I just misunderstand something. I was reading "iBATIS in Action"
book and found the following statement there:


It is not unusual for an object model to include components that also

child objects. For example, an Order object may contain a list or array
of Order-

Item objects that represent the items that were ordered.

Because the iBATIS framework is primarily a SQL mapping tool, it does

manage these sorts of relationships when updating the database. As a
result, this

functionality is something that must be handled in the data layer of
your application

rather than in iBATIS.


For example, I have the following class representing nodes of the tree:


public class TreeNode {

  private long id;

  private List<TreeNode> children = new ArrayList<TreeNode>();


  public long getId() {

    return id;



  public void setId(long id) {

    this.id = id;



  public List<TreeNode> getChildren() {

    return children;



  public void setChildren(List<TreeNode> children) {

    this.children = children;




And I would like to insert it in table TREE_TABLE:


create table TREE_TABLE


    ID           NUMBER(10)               not null,

    PARENT_ID  NUMBER (10)               null,

    constraint PK_ TREE_TABLE primary key (ID)




alter table TREE_TABLE

    add constraint FK_ TREE_TABLE_REF_3_TAB foreign key  (PARENT_ID)

    references TREE_TABLE (ID)



The question is how do I configure sql map "treeInsert" in order to make
this code work:



    TreeNode root = new TreeNode();


    TreeNode child1 = new TreeNode();

    TreeNode child2 = new TreeNode();

    TreeNode child3 = new TreeNode();






    sqlMap.insert("treeInsert", treeRoot);



Best regards, Alexey Kalmykov



From: Stephen Boyd [mailto:swboyd@gmail.com] 
Sent: Wednesday, February 20, 2008 7:05 PM
To: user-java@ibatis.apache.org
Subject: Re: insert/update objects graph


There shouldn't be any problems with it.  I do it all the time.  Can you
give us an example of your scenario that doesn't seem to work?

On Wed, Feb 20, 2008 at 11:01 AM, Alexey Kalmykov
<akalmykov@openwaygroup.com> wrote:

Hi all,


I am trying to evaluate iBATIS as an ORM solution for my project. I
really like the overall idea behind iBATIS and its approach to ORM. I
have a question about insert and update operations. I've been
successfully loading graph of objects using resultMaps. But as far as I
understand, I am unable to insert/update a graph of user-defined objects
*using only* iBATIS mapping. Am I right? If yes, was it an original
intention not to implement such feature or just there are some
difficulties in iBATIS design that prevents from doing it? 


Actually, I hope that I am wrong and somehow I can insert/update a graph
of objects only using iBATIS mapping :)

Thank you in advance.



View raw message