2014-09-22 3 views
0

Я использую Spring MVC и JPA, и я не знаю, как сохранить объект без его обновления в ForEach.Сохранять сущность в транзакционном контексте в forEach (Spring MVC + JPA)

@Transactional 
public void save(House house, List<Long> room) {   
    for (Long id : room) { 
     house.setRoom(new Room(id)); 
     houseDao.save(house); 
    } 
} 

public void save(House house) { 
    entityManager.persist(house); 
} 

Я хотел бы, чтобы в каждом звене цикла сохранялся новый объект, который изменил бы только информацию о комнате.

ответ

0

Предполагаемый дом имеет набор/список номеров.

Является ли CascadeType.PERSIST уже определенным для комнат в классе House?

class House { 
     @OneToMany(mappedBy = "whatever", cascade = { CascadeType.MERGE, CascadeType.REMOVE, CascadeType.PERSIST }) 
    private List<Room> rooms; 
} 

Так что теперь ваш код становится:

@Transactional 
public void save(House house, List<Long> room) {   
    for (Long id : room) { 
     house.getRooms().add(new Room(id)); 
    } 
    houseDao.save(house); 

} 

public void save(House house) { 
    entityManager.persist(house); 
} 
Смежные вопросы