当前位置: 首页 > 面试题库 >

Hibernate(JPA)映射HashMap

陈弘厚
2023-03-14
问题内容

我的问题围绕着我想用JPA映射的以下结构:

Map<User, List<POJO>>

我的POJO非常简单(没有复合类型等,只有一些原语)。

如何在链接的问题中实施建议?我该如何仅用List部分进行注释@Lob(当我仅对字段进行注释时,会发生类转换错误,因为HashMap无法转换为Blob,这是问题的根源-
我不能仅对值部分进行注释地图)?

我不确定是否需要使包装类型实现实现可包装List的Serializable,还是仅使用ArrayList本身就足够了。而且无论如何,我都无法持久保存此Map实例…

顺便说一句,我愿意就不同的方式提出建议:我可以将List保留为每个User的类成员,尽管我不认为它属于该列表,因为它不是用户数据(例如帐户数据)
;名称,地址等)。它类似于购买,因此我将它们放在类似于实用程序的类(在User类外部)中,该类负责这些购买,以便拥有更多的模块化模型。我想听听关于这听起来是否明智的建议。

任何有帮助的建议都将得到假想的cookie奖励(很明显是赞扬)。
它们在非常非想象的意义上是无脂的。

干杯。


问题答案:

如果您有地图,则可能存在一对多关系。将您的列表保留在User中,并使您的POJO成为一个实体,不要傻傻地使用@
Lob,Map是一场灾难,等待发生(哈希值/等于问题),并且无法提供干净的数据库映射。



 类似资料:
  • 在Postgresql中,我有一个类型为BIT(1)的列。在JPA映射中,如下所示: 但是,当我执行测试时,出现了这个错误: 错误:列“type”的类型是bit,但表达式的类型是character变化  提示:您将需要重写或强制转换表达式。  排名:117 我尝试过其他Java类型:char、int、Boolean和bitset。但是,同样的错误发生了。 您知道如何将Postgresql类型位(1

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示:

  • 问题内容: 我在为某些实体设置jpa映射时遇到麻烦。我有一个如下定义的父实体。 然后,我有一个带有复合键的子实体,以及此表的主键的外键,如下所示: 我知道子实体不正确,但是我不确定如何将其设置为具有复合PK。我知道我需要设置一个PK类,但是当一个字段是父类的外键时,我不确定该怎么做。一旦设置好,父级将如何引用子级实体? 任何帮助表示赞赏。 问题答案: 这受JPA 2规范的 第2.4.1节“与派生身

  • 我不是JPA/Hibernate方面的专家,我真的不知道我试图实现的是不可能实现的还是我做错了,既然我预计是后者,这里就什么也不做了。 我有一个map ,我正试图将其持久化到一个表中,并遵循了这里描述的示例:使用JPA存储map 但随后我得到一个HibernateException:列值的STATE_MAP中的列类型错误。找到:bigint,应为:char(255) 当我将bigint更改为cha

  • 我希望以以下方式映射实体: 我有一个用户,他买了一辆车(特定的品牌、型号和变体)。 为此,我创建了以下类。 Car.java汽车 CarModel.java 汽车变体.java 最后,用户.java 现在,我的问题是。 在现实生活中,用户可能拥有许多汽车,每辆汽车都有特定的品牌、型号和变体。我想用JPA / Hibernate实现这样的功能。 我可以定义与和的关系。在这种情况下,如果我执行或我最终

  • 我试图在类别和发布类(OneToMany)之间建立关系,我需要删除所有属于特定类别的发布。我不知道我是否遗漏了一些注释,但这是我在执行查询时的错误: org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常org.hibernate.exception.ConstraintViolationException:无法执行更新查询o