现在的位置: 首页 > 综合 > 正文

Hibernate中save方法无报错无法保存及@Transactional注解的意义

2017年10月04日 ⁄ 综合 ⁄ 共 532字 ⁄ 字号 评论关闭

hibernate使用中遇到一个问题,代码示例如下:

public class Sample{
    private String sample;
    private Set<SampleExt> sampleExt;
}

public class SampleExt{
  private String sampleExt;  
  private Sample sample;
}

上述的关系很好理解,Sample有一个一对多的SampleExt扩展类。

保存方法如下:

Sample s = new Sample();
s.setSample("sample");

SampleExt ext = new SampleExt();
ext.setSampleExt("sampleExt");
ext.setSample(s);

dao.save(ext);

dao操作:

getSession.save(ext);

结果在保存数据库的时候出现这样一个状况:

Sample实体的数据可以保存数据库,但是SampleExt没有保存到数据库,也没有报错。

最后的解决办法是:为ext的save方法加上注解:@Transactional

事后反思,以前有一个一样的保存方法,没有加@Transactional,但是没有出现这个问题。需进一步了解spring。

//TODO

抱歉!评论已关闭.