【发布时间】:2011-03-21 09:17:12
【问题描述】:
我是做这种事情的新手,但我想找到一个简单的方法来持久化一个包含 sashMap 和列表的 Java 对象。我一直在研究这个并相信我可以序列化它并保存到常规数据库中,例如通过休眠,但我不太清楚这一点,即使在阅读了大量教程之后,因为我不确定常规列表是否可序列化。我不期望关于如何做到这一点的完整答案,而是我想知道通常认为什么是最好的方法,以最少的不必要的复杂性来做到这一点,因为我愿意使用与我目前使用的不同的数据库设置(休眠与 MySQL)
我看过像 Mongo DB 这样的选项,但我也有点困惑,我是否需要在保存到 Mongo db 之前序列化对象。我一直在阅读很多文档,但想确保我选择最简单的方法来做到这一点,而且仍然可靠,并且愿意接受任何建议,任何建议都将不胜感激。我将坚持的对象将如下所示(虽然更复杂/嵌套)
public class TestClass {
public Map <Integer, Map> primaryHolder = new HashMap <Integer, Map>;
public addRecord (Integer key, Map inputMap<Integer, List>) {
primaryHolder.add(key, inputMap);
}
}
感谢您的建议
【问题讨论】:
-
序列化和持久化是两个完全不同的概念。序列化是关于将对象与串行字节流转换。而持久性是以持久的方式存储对象,例如通过 Hibernate 在数据库中。你对什么感兴趣?
-
@jmg:嗯,它们是相关的主题。随着序列化工作,您有一个简单的持久性方法。两者都处理将内存中的“活”对象图转换为“冻结”表示。
-
@jmg 我的目标只是对象的持久性,这是我困惑的一部分,因为据我了解,我需要序列化一个对象才能将其存储在常规数据库中,例如通过 Hibernate 到 MySQL 后端。实际上,我可能会对一种完全避免序列化的方法感兴趣,只要我能以可靠的方式将其持久化,然后稍后将其作为原始类型的 Java 对象取出
-
这个关于hibernate的话题可能对你有帮助forum.hibernate.org/viewtopic.php?p=2403603
标签: java serialization object persistence hashmap