org.hibernate.PersistentObjectException: detached entity passed to persist with H2 in memory database

谁说我不能喝 提交于 2019-12-01 18:01:41

I think the issue is here:

 @Test
    public void signup(){

    User user = new User();
    Company company = new Company();
    company.setName("Test");
    company = usService.saveCompany(company); //object is saved and transaction is closed, so company is detached here. 
    user.setFirstName("Test");
    user.setLastName("User");
    user.setEmail("test@test.com");
    user.setPassword("verySecret");
    user.setCompany(company); //u are setting this detached object to user, NOTE user object's company attr is cascade.all which means this company will be saved as well when you save user. 
    user = usService.saveUser(user); // gives exception, because you are saving new user object with detached company object. 

   }

So how do we solve it? You can let user save company object, so you do not save company explicitly, since cascade.all was on for company object in user, company should be saved as well when user is being saved:

@Test
    public void signup(){

    User user = new User();
    Company company = new Company();
    company.setName("Test");
    user.setFirstName("Test");
    user.setLastName("User");
    user.setEmail("test@test.com");
    user.setPassword("verySecret");
    user.setCompany(company);
    user = usService.saveUser(user); // gives exception

   }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!