2016-11-07 2 views
1

Я использую Spring JPA в моем слое DAO. У меня есть объект, имеющий Projet внутри собственности объекта Client:Получить свойство entity с Spring JPA

Project.java

@Entity 
public class Project { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int projetId; 

    private String libelle; 

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
    @JoinColumn(name="client_id") 
    private Client client; 

    // ... constructors, getters & setters 
} 

Client.java

@Entity 
public class Client { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int clientId; 

    private String denomination; 

    // ... constructors, getters & setters 
} 

в моем интерфейсе DAO у меня есть следующие спецификации:

ProjetDao.java

@Repository 
@Transactional 
public interface ProjetDao extends CrudRepository<Projet, Integer> { 

    @Transactional 
    public Projet findByLibelle(String libelle); 

    @Transactional 
    public Projet findByProjetId(int projetId); 
} 

Мой вопрос: Как я могу указать на мой DAO интерфейс метод, который будет возвращать все клиенты разные в List<Client>?

+0

попытаться использовать метод, который возвращает список Abdelhak

+0

Да точно, я хочу вернуться Список marherbi

+0

@MohamedRedaArherbi Я дал вам пример, в ответе со ссылкой на документацию – xenteros

ответ

1

С documentation и JIRA:

List<Project> findAllDistinctBy(); 

Механизм построитель запросов, встроенный в инфраструктуру хранилища данных Spring полезна для построения сдерживающих запросов над субъектами хранилища. Механизм разделяет префиксы находят ... By, read ... By, query ... By, count ... By и get ... По методу и начинает разбирать остальную часть. Представляющее предложение может содержать дополнительные выражения, такие как Distinct, для установки отдельного флага в создаваемом запросе. Однако первый действует как ограничитель для указания начала фактических критериев. На самом базовом уровне вы можете определить условия для свойств объекта и объединить их с помощью And и Or.

+0

Спасибо за ваш ответ, но я хочу, чтобы все клиенты отличались без параметров для выбора. – marherbi

+0

findAllDistinct – xenteros

+0

Извините, но он не показал ошибку «Нет свойства findAllDistinct для типа Project!'. Метод, который я написал в моем Dao, является 'public List findAllDistinct(); ' – marherbi

0

Вы имеете дело с отношениями «один к одному», в этом случае я думаю, что список, который вам нужен, действительно не связан с конкретным проектом, вам просто нужен отдельный список клиентов. Вам понадобится создать другой репозиторий (ClientRepository) для объекта Client и добавить метод findAllDistinct в этот репозиторий.

Смежные вопросы