gpt4 book ai didi

java - 如何将 native 查询映射到一个模型类?

转载 作者:行者123 更新时间:2023-12-01 15:59:13 25 4
gpt4 key购买 nike

您好,我正在使用 Eclipselink,我做了一个 native 查询来选择 2 个表的某些字段。我将表登录映射到模型类中。我不想映射表“B”,因为我的 sql 结果中只需要该表的 2 个字段。我可以将登录表中的这 2 个字段映射到我的 sql 结果吗?

我的sql是这样的:

select l.login_id, s.lugarcerto,s.vrum, l.username, l.first_name, l.last_name, l.phone, l.fax_number, l.address, l.zip, 
l.address2 as 'birth_date', l.city as 'cpf_cnpj'
from Logins l
join (select se.login_id, lugarcerto = min(case when se.service = 'IM' then '1' end), vrum = min(case when se.service = 'VE' then '1' end)
from (select distinct ad.login_id, substring(ap.Rate_code,(CHARINDEX('-', ap.Rate_code)+1),2) as 'service'
from Ad_Data.dbo.ad ad
join Ad_Data.dbo.ad_pub ap on (ad.ad_id = ap.ad_id)
where ap.ad_type =1) se
group by se.login_id) s on (s.login_id = l.login_id)

我确实映射了 Logins 表,并且我想将 s.lugarcerto 和 s.vrum 映射到我的 SQL 查询结果。无论如何,只需将其添加到我的登录模型中即可?

最佳答案

如果没有您想要将这些值放入的属性的映射,并且不会导致它们在实体中缓存​​时出现问题。

为什么不直接返回实体旁边的值,就像使用 JPQL 查询一样,例如:“Select l, subquery1, subquery2 from Logins l”,即:

 Query q = em.createNativeQuery(yourQueryString, "resultMappingName");

并在实体中包含注释:

@SqlResultSetMapping(name="resultMappingName",
entities={@EntityResult(entityClass=com.acme.Logins.class, )},
columns={@ColumnResult(name="LUGARCERTO"), @ColumnResult(name="VRUM")}
)

最诚挚的问候,克里斯

关于java - 如何将 native 查询映射到一个模型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com