Hibernate以随机顺序保存记录

时间:2015-03-17 12:10:04

标签: java mysql hibernate

我在我的应用程序和一个地方使用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上运行。*

1 个答案:

答案 0 :(得分:2)

您将成员存储在HashSet中。 HashSet不保留其成员的顺序。请改用LinkedHashSet或List。