Grade?g?=?new?Grade("二班",?"mysql基礎(chǔ)班");
Session?session?=?HibernateUtil.getSession();
Transaction?transaction?=?session.beginTransaction();
Student?student?=?session.get(Student.class,?1);
Set<Student>?students?=?g.getStudents();
students.add(student);
System.out.println("長度是:"+g.getStudents().size());
session.save(g);
transaction.commit();
HibernateUtil.closeSession(session);這段代碼中,g是新建的對(duì)象,它有4個(gè)屬性,構(gòu)造方法賦了兩個(gè)值,還有一個(gè)set集合的屬性,這個(gè)set集合是空的吧,現(xiàn)在用get方法獲得這個(gè)集合,并往里面添加一個(gè)對(duì)象,所以這個(gè)集合長度變?yōu)?了。但我并沒有把這個(gè)集合set給g對(duì)象,所以g對(duì)象里面的set集合應(yīng)該還是空的呀但我再get一次set集合,他的長度卻是1????為什么??
3 回答

botao555
TA貢獻(xiàn)48條經(jīng)驗(yàn) 獲得超46個(gè)贊
你的Grade類的代碼是什么樣的?
或者你在Grade?g?=?new?Grade("二班",?"mysql基礎(chǔ)班"); 這一行下面先打印下
System.out.println("長度是:"+g.getStudents().size()); 確認(rèn)下是不是Grade類的students是不是空的。
按照上面你給的代碼,Set<Student>?students 這個(gè)引用并沒有對(duì)Grade的實(shí)例g產(chǎn)生影響,理論上g.getStudents的大小不應(yīng)該變化。
添加回答
舉報(bào)
0/150
提交
取消