【发布时间】:2022-01-25 12:48:27
【问题描述】:
我应该如何在 Spring Data Java Persistence Application Programming Interface (JPA) 中表示此表?
该表是特定的,因为它没有主键并且表中的每一列都可以有空值,并且它是只读的。
在实体类中,我不能简单地用 @id 注释单个列,因为没有具有唯一值的列。
当然,我可以通过用@id 注释每一列来在实体类中创建复合虚拟主键,这可行,但前提是行中没有nulls。因此,如果我选择所有列都不是null 的行,那么这行得通。但是,如果一个或多个列包含null,Spring 无法从表中提取该行,而是只为整行返回null,而不是返回一个仅包含适当字段null 的实体对象。
请不要说“只在表格中添加 id 列”,因为表格对我们来说是只读的。我的公司谈判了一个多月,只是为了获得桌子的阅读权!我不能简单地在表格中添加id 字段。
在这种情况下我还能做什么?除了手动执行查询并提取结果。我可以以某种方式伪造id 字段以使春天快乐吗? id 字段对我们的应用程序并不重要,我们永远不会通过 id 过滤表,所以就我而言,它可以是任何让 Spring 高兴的东西。
【问题讨论】:
标签: java sql spring-boot jpa spring-data-jpa