Java 如何使用JPA持久化复杂的嵌套对象
我正在从事一个项目,该项目使用NLP库从互联网论坛上的分类广告中解析信息。经过处理后,我有了SaleItem实例和各种细节,如条件、价格等 当我对这些对象调用toString()方法时,它不会返回存储在对象本身中的字符串,而是在整个论坛帖子中查找自己的起点和终点,然后从中提取文本。(这样做是为了计算单个文本位的接近度) 我想使用JPA将这些对象持久化到RDBMS。在处理之后,我不再真正关心邻近性,我只想向用户显示字符串。如果我坚持整个论坛帖子,并通过上述方法不断检索实际文本,那将是巨大的浪费Java 如何使用JPA持久化复杂的嵌套对象,java,jpa,rdbms,Java,Jpa,Rdbms,我正在从事一个项目,该项目使用NLP库从互联网论坛上的分类广告中解析信息。经过处理后,我有了SaleItem实例和各种细节,如条件、价格等 当我对这些对象调用toString()方法时,它不会返回存储在对象本身中的字符串,而是在整个论坛帖子中查找自己的起点和终点,然后从中提取文本。(这样做是为了计算单个文本位的接近度) 我想使用JPA将这些对象持久化到RDBMS。在处理之后,我不再真正关心邻近性,我只想向用户显示字符串。如果我坚持整个论坛帖子,并通过上述方法不断检索实际文本,那将是巨大的浪费 我
我现在的问题是:我应该用字符串字段来增强原始类,还是创建一个全新的类,例如PersistentForSaleItem?我建议创建一个新的项,该项持续存在并只包含您关心的部分。这看起来可能是最简单的,并且允许您将收集/操作数据的关注点与数据的最终存储和显示分离开来。您甚至可以通过在构建过程中传入另一个对象来创建持久化对象,然后使用注释/xml配置将对象持久化到RDBMS中
只要我的2美分。我建议创建一个新项目,该项目持续存在,并且只包含您关心的部分。这看起来可能是最简单的,并且允许您将收集/操作数据的关注点与数据的最终存储和显示分离开来。您甚至可以通过在构建过程中传入另一个对象来创建持久化对象,然后使用注释/xml配置将对象持久化到RDBMS中
只有我的2美分。看起来您的ForSaleItem有几点与您想要保留的内容不兼容:
- 字符串的复杂检索过程 ->坚持之后就不需要了
- 将持久化到多个表的多个对象 ->不必要的复杂和缓慢,而只有一个对象,您可以将字符串存储在单个表中,并更高效地检索它
- 一个类,没有超类,带有注释@Entity
- 一个长标识符字段,带有注释@Id和@GeneratedValue
- 一个字符串字段,带有getter(如果希望最大字符串长度不同于256默认值,则使用@Column)和setter
- 空构造函数(可选) -
- 字符串的复杂检索过程 ->坚持之后就不需要了
- 将持久化到多个表的多个对象 ->不必要的复杂和缓慢,而只有一个对象,您可以将字符串存储在单个表中,并更高效地检索它
- 一个类,没有超类,带有注释@Entity
- 一个长标识符字段,带有注释@Id和@GeneratedValue
- 一个字符串字段,带有getter(如果希望最大字符串长度不同于256默认值,则使用@Column)和setter
- 空构造函数(可选) -