首页 > 解决方案 > 使用 ListAll() 在 JPA 中包含相关表中的列

问题描述

我有 2 个相关的表,我想知道当我在表 2 中调用函数 ListAll() 时,是否可以包括表 1 中的其他列(如名字和姓氏)?我将 JPA 与 Session Beans (AbstractFacade) 和 JSF Pages 一起使用。提前致谢 :-)

表 1

  CREATE TABLE cases (
  caseid INT AUTO_INCREMENT PRIMARY KEY, 
  category VARCHAR(32), 
  descript VARCHAR(512), 
  isDone TINYINT, 
  userid INT, 
  INDEX user_ind(userid), 
  FOREIGN KEY (userid) REFERENCES USERS(userid)
);

表 2

    CREATE TABLE users (
    userid INT NOT NULL AUTO_INCREMENT,
    firstname VARCHAR(64) NOT NULL,
    surname VARCHAR(64) NOT NULL,
    telephone VARCHAR(12),
    email VARCHAR(64),
    
    PRIMARY KEY (userid)
);

实体控制器

@Named(value = "caseController")
@SessionScoped
public class CaseController implements Serializable {
    
    @EJB
    CasesFacade casesFacade;
    
    @Inject
    CasesBean casesBean;
    
    public List<Cases> getAll() {
        return casesFacade.findAll();
    }

标签: jpaejbpersistencejava-ee-7

解决方案


如果我正确理解,也许好主意是将选择的列/字段解压缩到级别存储库或代码中的自定义 DTO。


推荐阅读