Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6548091
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T11:54:33+00:00 2026-05-25T11:54:33+00:00

I have a simple object relation, I wish to persist with hibernate. Basically, its

  • 0

I have a simple object relation, I wish to persist with hibernate.

Basically, its a Parent which contains a collection of Children. All I wish to do, is load the parent if it exists, otherwise create it, add elements to it and save it.

This is being done in a GWT enviroment, so I pass a ChildDTO to this method, which is basically just a non-persistant version of the Child class (which is incompatible with gwts RPC serialization).

public Integer testHibernate(Integer parentId, ChildDTO[] test) {
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();

    Parent model;
    if(parentId == null) {
        // if the parentId is null, create new instance 
        model = new Parent ); 
    }
    else {
        model = (Parent) hib.load(Parent.class, dto.getId());
    }

    model.setName("dummy name");

    for(int i = 0; i < test.length) {
        model.addChild(new Child(test[i].getId(), test[i].getName()));
    }

    hib.save(model);        
    hib.getTransaction().commit();

    return model.getId();
}

Right, this works fine for creating new Parents, without children. It also works fine if i am just adding one child to an existing parent. However, if i add more than one child, i get a “could not insert” error from hibernate.

Also, if I try adding just one child, to a already existing parent, which already have one child added. I get a “a different object with the same identifier value was already associated with the session” error.

Additional question. When inserting just one child, on a empty parent, hibernate does the following:

Hibernate: insert into Child(ChildId, ChildName) values (default, ?)
Hibernate: update Parent set ChildId=? where ChildId=? 

Whats with the update? :S

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T11:54:34+00:00Added an answer on May 25, 2026 at 11:54 am

    However, if i add more than one child, i get a “could not insert”
    error from hibernate
    .

    From the question it seems that the Parent-Child relationship has been setup as one-to-one rather than one-to-many. First make sure that is correct in your hibernate config file.

    <set name="children">
        <key column="parent_id"/>
        <one-to-many class="Child"/>
    </set>
    

    Also, if I try adding just one child, to a already existing parent,
    which already have one child added. I get a “a different object with
    the same identifier value was already associated with the session”
    error.

    In the following code snippet, you just save the child with the Id without checking if it already exists. Remember that Child is also stored in database as a row. So you need to check if that object exists in database.

    for(int i = 0; i < test.length) {
            model.addChild(new Child(test[i].getId(), test[i].getName()));
        }
    

    When inserting just one child, on a empty parent, hibernate does the
    following:

    That is logical, the first INSERT statement corresponds to the new row for the Child object. The second UPDATE statement corresponds to establishing the link between Parent and Child objects.

    You could optimize this by setting up inverse relation. In this scenario, the Child table stores the parent_id and therefore results in one INSERT statement than two statements.

    <set name="children" inverse="true">
        <key column="parent_id"/>
        <one-to-many class="Child"/>
    </set>
    

    Refer to this link in Hibernate documentation which clearly explains on how to setup and implement the Parent-Child relationship: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/example-parentchild.html#example-parentchild-bidir

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a simple Button control that contains an Image object as its content.
I have a simple object that get's geocoding data from the Google Maps API
I have a simple object that allows you to assign three properties (x,y,z) (lets
Say I have a simple object such as class Something { public int SomeInt
I have a simple JavaScript Array object containing a few numbers. [267, 306, 108]
I have a simple Dictionary(of String, Object) that I need to iterate through and
I have a simple code fragment in JS working with prototype inheritance. function object(o)
I'm relatively new to the Component Object Model specification - I have a simple
I have the following simple methods for writing a python object to a file
I have a very simple array (please focus on the object with "points.bean.pointsBase" as

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.