Данные проекта из разных таблиц в модель - PullRequest
0 голосов
/ 09 июля 2019

Я определил свои классы моделей, как показано ниже.

@Entity
@Table(name = "my_employee")
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    private String name;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "emp_address_mapping", joinColumns = @JoinColumn(name = "emp_id"), inverseJoinColumns = @JoinColumn(name = "address_id"))
    private List<Address> addresses = new ArrayList<Address>();

    .......
    .......
}

@Entity
@Table(name = "my_address")
public class Address {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String country;
    .....
    .....
}

public class EmployeeDetails {
    private int empId;
    private String name;
    private String country;
    ......
    ......
}

Как написать запрос, используя аннотацию @Query для заполнения всех EmployeeDetails.

public interface EmployeeRepository extends CrudRepository<Employee, Integer> {

    @Query("SELECT new com.sample.app.model.EmployeeDetails......")
    List<EmployeeDetails> getEmployeeDetails();
}

1 Ответ

1 голос
/ 11 июля 2019

Создать конструктор в EmployeeDetails

public EmployeeDetails(int id,String name,String country){
  this.id=id;
  this.name=name;
  this.country=country;
}

Попробуйте этот запрос

Чтобы получить все данные сотрудника:

SELECT new com.sample.app.model.EmployeeDetails(e.id,e.name,a.country) from Employee e,Address a 
...