簡體   English   中英

通過嵌入式ID查找的JPA存儲庫不起作用

[英]JPA repository find by embedded id not working

在存儲庫中:

@Transactional
public interface DeptMagrRepository extends CrudRepository<DepartmentManager, DeptMangrKey>{
  //1
  public List<DepartmentManager> findByDeptMangrKeyDepartmentDeptNo(String deptNo);
  //2
  public List<DepartmentManager> findByDeptMangrKeyEmployeeEmpNo(Integer empNo);
  //3
  public List<DepartmentManager> findByDeptMangrKey_Employee_EmpNoAndDeptMangrKey_Department_DeptNo(Integer empNo, String deptNo);
}

我能夠使用第一個和第二個功能獲得正確的答案。 但是第三個函數總是返回空結果。

例如,使用第一個功能,輸入為d008,它是部門編號之一,結果為:

[
  {
    "deptMangrKey": {
  "department": {
    "deptNo": "d008",
    "deptName": "Research"
  },
  "employee": {
    "birth_date": "1959-11-09",
    "first_name": "Arie",
    "last_name": "Staelin",
    "gender": "M",
    "hire_date": "1985-01-01",
    "emp_no": 111400
  }
},
    "fromDate": "1985-01-01",
    "toDate": "1991-04-08"
  },
{
"deptMangrKey": {
  "department": {
    "deptNo": "d008",
    "deptName": "Research"
  },
  "employee": {
    "birth_date": "1952-06-27",
    "first_name": "Hilary",
    "last_name": "Kambil",
    "gender": "F",
    "hire_date": "1988-01-31",
    "emp_no": 111534
  }
},
  "fromDate": "1991-04-08",
  "toDate": "9999-01-01"
}
]

當我調用第二個函數時,輸入為111400,這是emp_no,我得到了結果:

[
  {
    "deptMangrKey": {
      "department": {
        "deptNo": "d008",
        "deptName": "Research"
      },
      "employee": {
        "birth_date": "1959-11-09",
        "first_name": "Arie",
        "last_name": "Staelin",
        "gender": "M",
        "hire_date": "1985-01-01",
        "emp_no": 111400
      }
    },
      "fromDate": "1985-01-01",
      "toDate": "1991-04-08"
  }
]

但是當我調用第三個函數時,輸入是111400和d008,結果為空,為什么會發生這種情況?

我解決了這個問題,並在GitHub上發布了一個問題。 這是鏈接: https : //github.com/YingcaiDong/Practical-Company-Employee-data-API/issues/6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM