我有数据记录
实体在主键中给出如下
@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的记录,应该另存为新记录 记录吗?
答案 0 :(得分:3)
您应该创建一个新对象:
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 :(得分:1)
您可以通过创建另一个对象来实现。使用beanUtils复制对象...
尝试一下:
Record abc =dao.findById(11);
Record copyAbc = new Record();
org.springframework.beans.BeanUtils.copyProperties(copyAbc,abc);
copyAbc.setId(null);
dao.save(copyAbc);
答案 2 :(得分:0)
您可以这样做
@PersistenceContext
EntityManager em;
...
em.detach(entity)
编辑:看来我的回答有一些问题。请不要使用它,我终于使用了接受的答案