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