gpt4 book ai didi

java - 将外连接 SQL 查询转换为 EJB 实体 bean

转载 作者:行者123 更新时间:2023-11-30 05:15:04 25 4
gpt4 key购买 nike

我是 EJB 新手,正在尝试将 SQL 概念转换为 EJB 实体 bean。

假设我有两个表:PEOPLE(id,name),CONTACT(pid,phone_number)。如果我想获取所有人的列表,无论他们是否有电话号码,在我的 EJB session bean 中,我只需通过 JDBC 发出 SQL 查询,例如:

SELECT PEOPLE.name, CONTACT.phone_number 
FROM PEOPLE
LEFT JOIN CONTACT ON PEOPLE.id = CONTACT.pid

我现在想使用 EJB 实体 bean,而不是使用 SQL/JDBC。因此,我为我的表创建相应的 EJB3 实体 bean 类。

所以我现在可以从我的 session bean 访问这两个实体类,并且我不再希望从我的 session bean 直接通过 SQL/JDBC 访问我的数据库表。我只想使用我的实体 bean 和 JPA 的功能。正确的 EJB 设计是什么,以便在我的 session bean 中获得与 SQL 查询相同的结果?

我不清楚如何使用 EJB 实体 bean 类来生成与 SQL 外连接查询相同的结果。帮助。

最佳答案

首先,创建两个 JPA 实体,类似于 People:

@Entity
@Table( name="PEOPLE" )
public class People {

@Id @Column
private Long id;

@Column
private String name;

@OneToOne
@JoinColumn( name="pid" )
private Contact contact;

// getters and setters
}

联系方式:

@Entity
@Table( name="CONTACT" )
public class Contact {

@Id @Column
private Long pid;

@Column
private String phoneNumber;

// getters and setters
}

然后,使用 JPQL 生成 OUTER JOIN 查询:

SELECT p FROM People p LEFT JOIN p.contact c

关于java - 将外连接 SQL 查询转换为 EJB 实体 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734251/

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