首页 > 解决方案 > 使用存储数组 BigDecimal Hibernate 的字段创建实体

问题描述

我在需要映射到实体的数据库中有一个表“布局”:在此处输入图像描述

在数据库中,必填字段“camera ids”的类型为“numeric[]”。

有一个表“相机”,它在数据库中表示如下:

在此处输入图像描述

在数据库中,必填字段“camera id”的类型为“numeric”。

主要问题是如何在 Hibernate 中创建实体“布局”以匹配呈现的表格?也许在存储库中组织操作以进行布局?

标签: javaarraysspringhibernateentity

解决方案


您的“布局”表似乎违反了NF1第一范式),其中规定不允许包含值集的列。

您可以创建一个映射表(包含 layout_id、camera_id 列)。

也许您有理由不规范化该表 - 在这种情况下,您可能会将该原因添加到您的问题中。

对于布局实体:

您的实体将具有某种“相机”实体的集合/列表,或者您的布局不知道相机,在这种情况下,您的相机将需要其匹配“布局”的外键。我可以推荐阅读 Vlad Mihalcea 撰写的一篇非常有用的文章,讨论这些类型的映射


推荐阅读