今天做表内容复制时,遇到了updateOrSave()方法,数据库中没有数据,却总是执行update方法。

   工作的内容是把两张表的内容复制到另外两张表中,其中要复制的两张表是多对一关系,用来存储的

两张复制表之间也有存储关系,即现在有两张表A和B,要把A和B的内容复制到C和D里面,其中A和B之间是一对多,

C和D之间也是一对多。当获取了A表的内容之后,需要把这些内容复制到C里面,C在做updateOrSave的时候,会自动

的把B的内容复制到D里面,但是C里面的内容却无法复制,老师执行update方法,但是数据库里面根本没有数据。

后来同事帮忙看了一下,原来是C表的POJO上面添加注解:

@SequenceGenerator(name = "generator", allocationSize = 1, sequenceName = "seq_ESBLOGMAINSTORE")

@Id
@GeneratedValue(strategy = SEQUENCE, generator = "generator")
@Column(name = "ID")
public String getId() {

}

这样hibernate在执行updateOrSave的时候总是会去生成一个ID,但是该表的ID不需要自己生成,是直接复制过来的,

把@SequenceGenerator(name = "generator", allocationSize = 1, sequenceName = "seq_ESBLOGMAINSTORE")

和@GeneratedValue(strategy = SEQUENCE, generator = "generator")两个注解去掉即可复制。

posted on 2014-03-21 16:48  帅的惊动了党  阅读(921)  评论(0编辑  收藏  举报