首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPQL、Java (和Oracle DB)之间的关系

问JPQL、Java (和Oracle DB)之间的关系
EN

Stack Overflow用户
提问于 2016-11-17 06:22:20
回答 1查看 25关注 0票数 0

我对上面的关系感到困惑。

我的Oracle DB表:

代码语言:javascript
复制
xd_Users: user_id (pk), client_id (fk), name, doj, email, dol
xd_Managers: manager_id (pk), user_id (fk)

对应的Java实体User和Manager分别对应于上述两个表。Manager和User是独立的,没有继承关系,并且具有与DB表相对应的字段。

在我的应用程序中,Manager必须是用户。

我正在编写a(n尚未完成)方法(在一个名为PersistService的类中)来检索作为经理的用户列表。

代码语言:javascript
复制
public static ArrayList<User> getManagersForClient(Client client) {
    Long clientId = client.getClientId();
    EntityManager em = getEntityManager();
    String sqlQuery = "SELECT u FROM XD_USERS u, XD_MANAGERS m WHERE u.CLIENT_ID = :clientId";
    TypedQuery<User> query = em.createQuery(sqlQuery, User.class);
    query = query.setParameter("clientId", clientId);
    ArrayList<User> clientUsers = (ArrayList<User>) query.getResultList();
    for (User user : clientUsers) {

    }
    return clientUsers;
}

我构造的伪sql查询是(末尾的:client_id只是java变量,因此是伪sql):

代码语言:javascript
复制
select * from users u join managers m on u.user_id = m.user_id where u.client_id = :client_id;

我在将其转换为有效的JPQL查询时遇到问题。我不知道该如何思考如何解决这个问题。特别是,标识变量、单值关系字段、集值关系字段和持久化字段之间的关系非常混乱。更让我困惑的是this的帖子。请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2016-11-17 06:35:44

如果您正确地编码了相关实体,那么您的sql select查询在jpql中类似于这样(根据您给出的相关表的结构):

代码语言:javascript
复制
select u.userId,u.name,u.doj,u.email, u.dol, m.managerId
from User u 
join u.manager m 
where u.clientId = :client_id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40643438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档