0

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

class Folder {
   ...

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

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

X = 第一个
Y = 第二个
Z = 第三个

现在您了解了问题所在,还有更多内容。文件有类型。

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<FileType, FileWithOrder> 以便分隔每个文件类型,然后给它们一个带有订单号的整数吗?
  • 其他更好的建议?:)

我希望我对我的问题足够清楚。谢谢

4

1 回答 1

0

如果您想跟踪插入顺序,我认为 aList比 a 更适合Set。至于按文件类型的分离,我会Map<FileType, List<File>>在全局列表之外创建一个。

这是针对 Java 方面的,但我不知道 Hibernate 将如何保持这一点。

于 2013-11-07T19:27:28.677 回答