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