Выбрать выбранные столбцы из двух или более таблиц, используя Spring Jpa - PullRequest
0 голосов
/ 13 сентября 2018
@Entity
public class A{
 //some properties
}


 @Entity
 public class B{
  //Some properties
 }

Я хочу получить выбранные столбцы из двух таблиц, используя JPA, я знаю, как извлечь данные из одной таблицы Entity через репозиторий и контроллеры.

Repository:

public interface extends JPARepository<A, Long>{
    List<A> findAll();}

Контроллер:

public class class_name{
@AutoWired
private JPARepository repo;
 @RequestMapping("/data")
public List<A> getData(){
return repo.findAll();
}
}

Выше код предназначен для извлечения данных из одной таблицы. Теперь я хочу получить выбранные столбцы из обеих таблиц.

Note: A, B Entities have mappings

1 Ответ

0 голосов
/ 13 сентября 2018

Что вы можете сделать, это использовать аннотацию @Query для одного из ваших методов в хранилище и выполнить что-то вроде этого:

public Name {
    String firstName;
    String telephone;

    public Name(String firstName,String telephon) {
        //initialize fields
    }
}

@Query(select new dummy.Name(u.name,c.telephone) from User u join fetch u.contact c where u.externalId= ?1 )
public Name getName(String externalId){}

Вы можете легко вернуть List вместо использования запроса конструктора, но я нахожу его чище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...