表A
@ManyToOne
private B b;
表B
@Column(length = 10, nullable = false, unique = true)
private String name;
@OneToMany(cascade = CascadeType.REFRESH, mappedBy = "b")
private Set<A> alist;
Service(已加入@Service和@Transactional)
A a = new A();
a.setB(new B(1));
service.save(a);
这时报错:
not-null property references a null or transient value : com.entity.B.name
可是我在JUnit里面用同样的确可以 ,这是怎么回事啊 @红薯
具体功能不明白你的流程,其实你如果是一次性获取出来,然后打印出来是可以的,你可以测试一下,但是如果你保存的对象在另一个方法中去使用其映射的部分,可能是获取不到的。现实项目中经常出现这样问题流程是这样的,A和B是一对多关系,我现在要插入一条新的A,A里面有B的外键对象,所以就setB(newB(1)),但是因为B里面有个不为空的属性,这里就报错了,我关联也没设置级联更新,这里怎么会报错呢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。