Hibernate с MySQL переписывает ПК - PullRequest
       1

Hibernate с MySQL переписывает ПК

0 голосов
/ 22 сентября 2018

Ну, я впервые использую Hibernate и, неожиданно, он работает.За исключением одного: вставка с уже вставленным pk перезаписывает запись, предотвращающую ее.

Это мой простой код:

@Controller
public class SimpleController {

    @Autowired
    UserRepository userRepository;

    @GetMapping("/mainPage")
    public String viewMainPage(){
        return "mainPage";
    }

    @GetMapping("/nuovo-utente")
    public String viewInserisciUtente(Model model){
        model.addAttribute("nuovoUtente", new Utente());
        return "nuovo-utente";
    }

    @PostMapping("/nuovo-utente")
    public String memorizzaUtente(@ModelAttribute Utente utente){
        userRepository.save(utente);
        return "output";
    }
}

@Entity
public class Utente {
    @Id
    private int id;

    private String citta=null;
    private String genere=null;
    private String data_nascita=null;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCitta() {
        return citta;
    }

    public void setCitta(String citta) {
        this.citta = citta;
    }

    public String getGenere() {
        return genere;
    }

    public void setGenere(String genere) {
        this.genere = genere;
    }

    public String getData_nascita() {
        return data_nascita;
    }

    public void setData_nascita(String data_nascita) {
        this.data_nascita = data_nascita;
    }
}

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: я добавил класс сущности, чтобы помочь вам понять мою проблему.Надеюсь, что это поможет.

Спасибо вам всем

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Попробуйте добавить стратегию генерации идентификатора в поле id.

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
0 голосов
/ 22 сентября 2018

Если вы посмотрите документацию CrudRepository , то у нас нет метода обновления, но у нас есть только метод сохранения, который используется для добавления или обновления существующих записей.

В вашемВ этом случае вы могли обновить сущность (кроме ее поля Id) и попытаться сохранить сущность.Таким образом, CrudRepository обновит существующее значение для данного идентификатора, поскольку оно уже присутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...