Spring boot создайте дублирование записи из mysql - PullRequest
2 голосов
/ 28 апреля 2020

У меня есть запись данных.

сущность задается в первичном ключе следующим образом:

@GeneratedValue(strategy = GenerationType.IDENTITY)
    @Id
    @Column(name = "id",unique = true,nullable = false)
    public Long id;

, что я пробовал и даже пытался использовать для сопоставления объектов, у которого есть некоторые другие проблемы

Record abc =dao.findById(11);
abc.setId(Null); //not working  
dao.save(abc) //not working

так что я пытаюсь сделать, это запись с первичным ключом как 1, при сохранении она должна быть сохранена как новая запись?

Ответы [ 3 ]

3 голосов
/ 28 апреля 2020

вы должны создать новый объект:

Record abc =dao.findById(11);
Record def = new Record(abc);
dao.save(def)

, а в классе Record у вас должен быть такой конструктор:

public Record(){}
public Record(Record rec){
    this.field1 = rec.field1;
}
1 голос
/ 28 апреля 2020

Вы можете сделать это, создав другой объект. Клонировать объект с помощью beanUtils ...

Попробуйте с этим:

        Record abc =dao.findById(11);
        Record copyAbc = new Record();
        org.springframework.beans.BeanUtils.copyProperties(copyAbc,abc);
        copyAbc.setId(null);
        dao.save(copyAbc);
0 голосов
/ 28 апреля 2020

Вы можете сделать так 1011 * РЕДАКТИРОВАТЬ: кажется, мой ответ имеет некоторые проблемы. Пожалуйста, не используйте его, я наконец-то воспользовался принятым ответом

...