powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Хайбернейт: проблемы при апдейте сущности
2 сообщений из 2, страница 1 из 1
Хайбернейт: проблемы при апдейте сущности
    #38613682
AlexWei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пытаюсь сохранить объект в БД. Для этого использую хабернейт. Вот мои сущности

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Entity
@Table(name = "company")
public class Company implements Serializable {
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
 
    @Column
    private String name;
 
    @OneToMany(mappedBy = "company")
    @LazyCollection(LazyCollectionOption.FALSE)
    private Collection<Employee> employees;



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Entity
@Table(name = "company")
public class Company implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Column
    private String name;

    @OneToMany(mappedBy = "company", cascade = CascadeType.ALL)
    @LazyCollection(LazyCollectionOption.FALSE)
    private Collection<Employee> employees;



Вот мой контроллер

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
@Controller
@RequestMapping("/company")
public class CompanyController {
 
    @Autowired
    CompanyRepository companyRepository;
 
    @RequestMapping(value = "/{id}",
                    method = RequestMethod.GET,
                    produces = "application/json")
    @ResponseBody public Company getCompany(@PathVariable("id") Integer id) {
        return companyRepository.getCompany(id);
    }
 
    @RequestMapping(method = RequestMethod.PUT,
                    consumes = "application/json",
                    headers = "content-type=application/json")
    public String updateCompany(@RequestBody Company company) {
        companyRepository.updateCompany(company);
        return "redirect:/company/" + company.getId();
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Repository
@Transactional(propagation = Propagation.REQUIRED)
public class HibernateCompanyRepository implements CompanyRepository {
 
    @Autowired
    HibernateTemplate template;
 
    // др. методы не пропущены
 
    @Override
    public void updateCompany(Company company) {
        template.update(company);
    }
}



Изначальная сущность до апдейта

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
{
  "name" : "IBM",
  "employees" : [
    {
      "name" : "John",
      "id" : 2
    },
    {
      "name" : "Bill",
      "id" : 4
    }
  ],
  "id" : 2
}



И измененная сущность, которая приходит на контроллер и сериализуется в POJO

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{
  "name" : "IBM",
  "employees" : [
    {
      "name" : "John",
      "id" : 2
    }
  ],
  "id" : 2
}



В метод updateCompany моего контроллера приходит проапдейченая компания. Из коллекции, допустим, удален сотрудник, но когда хайбернейт пытается сохранить все это в БД, то на выходе я получаю старую сущность, то есть хайбер не апдейтит записи.
Может кто-то подсказать, в чем может быть проблема и как ее пофиксить?
...
Рейтинг: 0 / 0
Хайбернейт: проблемы при апдейте сущности
    #38613684
AlexWei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
* др. методы пропущены
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Хайбернейт: проблемы при апдейте сущности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]