2 u011558902 u011558902 于 2013.07.31 09:55 提问

hibernate一对多时,为什么在一那方设置关联多那方是老是报空指针的错误啊

@Test
public void test2(){
User1 u=new User1();
u.setName("u1");
User1 u1=new User1();
u1.setName("u2");
group1 g=new group1();
g.setName("g1");
g.getUser().add(u);
g.getUser().add(u1);
u.setGrp(g);
u1.setGrp(g);
Session s=sessionFactory.getCurrentSession();
s.beginTransaction();
s.save(g);
s.getTransaction().commit();
System.out.print("nihao");
}

经过测试总是g.getUser().add(u);
g.getUser().add(u1);
在这两句发现空指针问题,怎么回事啊

3个回答

u011487311
u011487311   2013.08.01 12:42
已采纳

制定关系的时候有错:
g.getUser().add(u);
g.getUser().add(u1);
u.setGrp(g);
u1.setGrp(g);
上面的代码顺序应该是:
u.setGrp(g);
u1.setGrp(g);
g.getUser().add(u);
g.getUser().add(u1);

u011434755
u011434755   2013.07.31 16:51

group1类里面 的user是不是没有设置值啊。如果没有设值就会报空指针异常。null.*这种形式的都会报空指针异常。

lb201155080209
lb201155080209   2013.08.06 17:01

应该先把user先save,再save你的group

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于hibernate的多对一单向关联,一对多单向关联,和一对多双向关联的疑惑解答
转载:http://yanghelinok.blog.163.com/blog/static/4636027220146974240760/ hibernate提供的多对一,一对多给面向对象的开发提供了更多的操作便捷,但是也引发了不少问题。 也许很多人还不知道单向关联和双向关联有什么区别?那就先来说说这两者间的异同。 单向关联:是指在实体的一端进行关系的维护,直接通过一端的操作实现业
在一对多关系中为什么要让多的一端维护关联关系
有两个类,Class表示班级,Student表示学生,两者之间是一对多的关系。Class有以下属性:private int id;//id号 private String name;//班级名 private Set students;//学生集合Student有以下属性:private int id;//id号 private String name;//姓名 private C
hibernate单向一对多,对多的那方进行查询并且进行排序的hql语句
patient对reserve是单向一对多的: String  hql="select  r from Reserve r, Patient p where r in elements ( p.reserves ) and p.id=1  order by r.id";
1.19 多对一 关系 (多对一为多方外键;一对多为一方外键)
一、多对一关系(annotation 方式) 例如,一个人有多个梦想,如果外键加在person表上,出现冗余;一般多对一关系,外键加在多得一方。代码举例: 例如:组与成员的关系。 1.group类 @entity public class group{ public int id; public string name; @id @generatedvalue public i
关于hibernate的一对多ORM映射关系中一方Set<E>中空指针异常解决方案
实体类: @Entity public class Owners { private Integer ownersId; private String ownersName; private String ownersAddress; private String ownersCity; private Set petsSet; public
Hibernate一对多,多对多操作
表与表之间的关系一对多: 分类和商品关系,一个分类里面有多个商品,一个商品只能属于一个分类。 客户和联系人是一对多关系:联系人在人际交流中担任着重要的角色,在销售过程中,我们通常不是在最开始就联系到有决策权的高管,而有可能是接电话的前台A、营销人员B、客服C、技术人员D等等。这些人都是我们与企业保持交流的联系人。他们对产品的支持态度决定了产品是否能够顺利推送到高管面前。通常销售人员在跟进一个客户时,
在hibernate中如果一对多关联,并以多的一方的参数作为条件则必须使用
public Data findDiectorByFilmId(Long filmId) { Data rows = directorDao.findRows("select new FilmDirector(fd.id as id,fd.chName as chName,fd.enName as enName,fd.birthDate as birthDate,fd.birthplace a
Day40-Hibernate03(多表操作、配置多表关系、级联、放弃外键维护权)
Hibernate03(多表操作、配置多表关系、级联、放弃外键维护权)
对Hibernate中关系维护方和级联的理解
级联:在双向多对一中,有一方设置了级联,如@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)(它是在多的一方设置了级联),它的作用就是在操作设置级联的那一方时会影响另一方(比如在保存时,当然前提是要对对方属性有设置,不然就是空,那么对方也会插入数据,但对方插入数据时,有没有本方的属性就要看本方是不是关系维护方了)。(如果某一方
问题:一对多或者多对多,老是报空指针异常
如题:在配置hibernate的映射时,一直报NullPointerException 解决:那多半就是你在 ”一”方的JavaBean中的set集合没有new。。。。。。 private Set xxx=new HashSet();