我在MySQL数据库中有2个表:user
和user_additional_details
,下面介绍各列。
用户
用户其他详细信息
表user_additional_details
包含user
表中每个userId的0或1行。
但是,数据库没有定义外键约束。理想情况下,应该将user_additional_details
中的列添加为user
表中的可空列,但是由于某些未知的原因而没有这样做。现在,我需要为以下查询定义实体。
select user.userId, user.phone, user_a_d.personalPhone
from user
join user_additional_details as user_a_d
on user.userId = user_additional_details.userId
我尝试为表定义JPA实体,但无法弄清楚如何创建使用来自不同表的列的实体。
答案 0 :(得分:0)
创建UserEntity(具有User表中的所有列)和UserAdditionalDetailsEntity(具有user_additional_details表中的所有列)。我假设您知道如何创建JPA实体并将其映射到数据库表。
我希望您可以在spring配置文件中创建实体管理器工厂对象。在创建实体管理器对象的帮助下。
一旦创建了EntutyManager对象:
# make a small sample matrix
m <- matrix(seq(1, 20, by = 1), nrow = 2, ncol = 10)
# apply the diff function to the rows, I expect a 2 by 10 matrix here, should I just transpose it?
apply(m, 1, diff)
[,1] [,2]
[1,] 2 2
[2,] 2 2
[3,] 2 2
[4,] 2 2
[5,] 2 2
[6,] 2 2
[7,] 2 2
[8,] 2 2
[9,] 2 2
一旦获得resultList,就可以遍历对象数组列表并获取数据。 resultList的每个索引都将包含代表一行的对象数组 请记住,查询中提到的字段名称应与JPA实体中提到的字段名称相同。
答案 1 :(得分:0)
您似乎正在寻找SecondaryTable annotation
指定带注释的实体类的辅助表。指定 一个或多个辅助表表明该实体的数据 类存储在多个表中。
在这里找到有关如何使用它的详细示例-http://www.thejavageek.com/2014/09/18/jpa-secondarytable-annotation-example/