如何按照它们存储在Set中的顺序保存对象?

时间:2013-11-07 19:16:43

标签: java hibernate

我有一个“文件夹”类,有很多文件,如下所示

class Folder {
   ...

   @ManyToMany
   private Set<File> files= new HashSet<>();
}

我不仅需要保存文件夹所具有的文件,还需要保存该文件夹的文件顺序(对于其他文件夹可能不同)。如果我有3个文件:“X Y Z”,我还需要知道:

X = 1 Y =第2
Z = 3

现在您已经了解了这个问题,还有更多内容。这些文件有类型。

class File {
   ...

   @ManyToOne
   private FileType type;
}

每种类型的文件都会在文件夹上生成不同的顺序。

所以,我可以有一个包含4个文件的文件夹:

“X”,输入“jpeg”
“Y”,输入“jpeg”
“Z”,输入“png”
“W”,输入“png”

在这种情况下,它应该是

对于jpeg类型,X = 1st,Y = 2nd
对于png型,Z = 1st,W = 2nd

我不确定这样做的最佳方式是什么。

  • 我应该创建另一个保持关系的类吗?我仍有问题要区分文件类型。
  • 我应该创建一个Map&lt; FileType,FileWithOrder&gt;所以我可以分隔每个文件类型,然后给它们一个带有订单号的整数?
  • 其他更好的消化? :)

我希望我对自己的问题很清楚。感谢

1 个答案:

答案 0 :(得分:0)

如果您想跟踪广告订单,我认为ListSet更适应。 至于按文件类型分隔,除了全局列表之外,我还会创建一个Map<FileType, List<File>>

这是针对Java方面的,但我不知道Hibernate会如何保留它。