我在我的应用程序和一个地方使用Hibernate,我试图将多个记录一次保存到同一个表中。这些记录是指父母的子记录(从孩子到父母的多对一关系)。父记录和子记录立即保存。以下是代码。
Beats beats = new Beats();
HashSet<BeatMembers> beatMembersSet = new HashSet<BeatMembers>();
String[] membersArray = beatMembers.split(",");
for (int i = 0; i < membersArray.length; i++) {
BeatMembers member = new BeatMembers();
member.setMemberName(membersArray[i]);
member.setBeats(beats);
beatMembersSet.add(member);
}
beats.setBeatMemberses(beatMembersSet);
session.save(beats);
如您所见,我正在基于','拆分字符串,并将结果数组保存到数据库中的多个记录中。
我的问题是保存记录的顺序与创建记录的顺序不同。有办法解决这个问题吗?
我正在使用hibernate 4.3.8和MySQL 5.6并在Java 1.7上运行。*
答案 0 :(得分:2)
您将成员存储在HashSet中。 HashSet不保留其成员的顺序。请改用LinkedHashSet或List。