Изменения в репозитории JPA для получения данных из двух таблиц, объединяющих - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть 2 таблицы Employee и Branch

  employee (
       emp_id INT PRIMARY KEY,
       first_name VARCHAR(40),
       last_name VARCHAR(40),
       birth_day DATE,
       sex VARCHAR(1),
       salary INT,
       super_id INT,
       branch_id INT
  );

   branch (
        branch_id INT PRIMARY KEY,
        branch_name VARCHAR(40),
        branch_address VARCHAR(50),
        branch_pincode INT
    );

У меня есть один запрос (выберите A.emp_id, A.first_name, A.last_name, A.birth_date, B.branch_id, B.branch_name, B.branch_address, B.branch_pincode от сотрудника A, филиал B, где A.branch_id = B.branch_id;)

У меня есть 2 интерфейса, как entity_ employee_repo, так и branch_repo, которые расширяют CrudRepository.Как я получу данные из этого запроса из этих хранилищ вместе взятых.

 @Entity
 @Table(name = "employee")
 public class Employee {

     @Id
     @GeneratedValue(strategy=GenerationType.TABLE)
     private Integer emp_id;

     private String first_name;
     private String last_name;
     ..
     ..
     //

     // with getters and setters...
  }

 @Entity
 @Table(name = "branch")
 public class Branch {

     @Id
     @GeneratedValue(strategy=GenerationType.TABLE)
     private Integer branch_id;

     private String branch_name;
     private String branch_address;
     ..
     ..
     //

     // with getters and setters...
  }

Я пробовал это, но не смог найти решение

 @Entity
 @Table(name = "employee")
 public class Employee {

     @Id
     @GeneratedValue(strategy=GenerationType.TABLE)
     private Integer emp_id;

     private String first_name;
     private String last_name;
     ..
     ..
     //

     // with getters and setters...
     @OneToOne(mappedBy = "branch", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
     private Branch branch;

  }

 @Entity
 @Table(name = "branch")
 public class Branch {

     @Id
     @GeneratedValue(strategy=GenerationType.TABLE)
     private Integer branch_id;

     private String branch_name;
     private String branch_address;
     ..
     ..
     //

     // with getters and setters...

     @OneToOne
     @JoinColumn(name = "branch_id", referencedColumnName = "branch_id")
     private Employee employee;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...