Java - 在mysql中存储HashSet

时间:2011-06-30 21:45:06

标签: java mysql

如何在mysql表中存储未知大小的HashSet。我知道我可以遍历它并将其存储在一个longtext字段中。

然而,当我检索该字段并将其临时存储到字符串中时,它将使用额外的内存来存储大量信息。

有没有简单的方法来存储HashSet?

4 个答案:

答案 0 :(得分:5)

带有索引列的SQL表基本上是一个哈希集。

您不应该尝试在表中存储(持久化)HashSet的二进制表示。您应该将HashSet的数据存储(持久化)为行和列,然后将该数据读入Java端的HashSet。

换句话说,您应该使用数据库直接存储数据,而不是保存包含数据的Java集合的序列化表示。这就是数据库的意图......以结构化,一致的方式存储/保存数据。如果您真正需要做的就是序列化HashSet那么为什么要干扰数据库呢?

答案 1 :(得分:1)

我会将其转换为JSON并将其存储为文字。

有些库可以轻松地转换为JSON和从JSON转换 - 例如googles gson

答案 2 :(得分:0)

是。表中单独记录中的每个元素都带有“父”表的外键。 Yhay是JPA处理它的方式。

答案 3 :(得分:0)