Grade?g?=?new?Grade("二班",?"mysql基礎班");
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是新建的對象,它有4個屬性,構造方法賦了兩個值,還有一個set集合的屬性,這個set集合是空的吧,現(xiàn)在用get方法獲得這個集合,并往里面添加一個對象,所以這個集合長度變?yōu)?了。但我并沒有把這個集合set給g對象,所以g對象里面的set集合應該還是空的呀但我再get一次set集合,他的長度卻是1????為什么??
3 回答

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