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 8015303
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T20:12:56+00:00 2026-06-04T20:12:56+00:00

I have two entities User and Department, There is a bidirectional relation between the

  • 0

I have two entities User and Department, There is a bidirectional relation between the two entities (OneToMany and ManyToOne), I manage the relationship in a service class that handles removing and adding users to department in the following:

List<User> originalUserList = userJpaRepository.findAllByDepartment(department);
for (Iterator<User> iterator = originalUserList.iterator(); iterator.hasNext();) {
    User user = iterator.next();
    if (!department.getDepartmentEmployees().contains(user)) {
        user.setDepartment(null);
        userJpaRepository.save(user);
    }
}
for (User user : department.getDepartmentEmployees()) {
    user.setDepartment(department);
    userJpaRepository.save(user);
}
Department savedDepartmetn = jpaRepository.save(department);
return savedDepartmetn;

Everything works fine adding and removing users gets reflected to the database, but the only problem is in the second to last line, the isntance savedDepartment will still contain removed Users because hibernate populates its data from a select that happens before the changes done to user is actually flushed to the database. What is the best approach here,

  • Should I flush before saving the department (and if saving department fails will the transaction be rolled back)
  • Should I refresh the savedInstance before returning it to the caller
  • any other Ideas.
  • 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-06-04T20:12:58+00:00Added an answer on June 4, 2026 at 8:12 pm

    There is no need to save anything since you’re using attached entities. JPA automatically persists the changes you do to attached entities.

    And when you have a bidirectional association, it’s your responsibility to make the changes at both sides to ensure that your object model is consistent. If you set user.department to null, then you should also remove the user from department.users.

    I don’t understand what the above code is doing, but remove the calls to save, and maintain both sides of the association, and everything will be fine.

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

Sidebar

Related Questions

I have the following two entities: @Entity class Relation{ @ManyToOne private User user; //some
I have two entities, User and UserSetting. The obvious relationship between these two has
I have two entities, a User and Role with a one-to-many relationship from user
I have following two entities public class User { [Key] public int Id {
I have two entities: Login (user id, password) and Information (title, info). Now there
I have two simplest of Entities, similar to: public class User { int id;
Suppose I have two entities: User and UserGroup . They have a one-to-many relationship
hi i have two entities User and Authority they have many to many relation:
I have following two entities public class User { public int UserId { get;
I have two entities User and Group: @Entity public class User implements Serializable {

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.