Как обрабатывать null при использовании SELECT new из JPA

#java #spring #spring-boot #jpa #spring-data-jpa

#java #весна #весенняя загрузка #jpa #spring-data-jpa

Вопрос:

Я использую Jpa и Spring, но у меня возникают проблемы, когда я получаю данные из базы данных.

Сущность

 @Entity
public class Employee {
   @Id
   private String id

   private String noteId

   private String email

  //get and set
}

@Entity
public class Note{
   @Id
   private String id

   private String value

   private String description

  //get and set
}
  

Я, используя JPA, получаю всю информацию из базы данных с двумя таблицами note и employyee.
Я пишу запрос, который выглядит как

Репозиторий

 @Query("SELECT NEW com.example.response.ResponseDto(e.id,e.email,n.description,n.value) FROM Employee e JOIN NOTE n ON e.noteId = n.id WHERE e.id = :id and  n.value = :value")
ResponseDto findAllEmployeeAndNote(String id, String value)
  

Когда я помещаю идентификатор и значение правильного значения в базу данных. Я получаю успешный ответ. Но когда я помещаю идентификатор и значение, не найденные в базе данных. JPA выдает исключение : Result must not empty

Я хочу пользовательское сообщение Result must not empty и создаю свое пользовательское исключение. Как с этим справиться

Комментарии:

1. Перехватите исключение JPA и создайте свое собственное (в идеале установите исключение JPA в качестве причины)?

2. @Thomas ты имеешь в виду, что когда я вызываю findAllEmployeeAndNote , я использую try catch ?

3. Не могли бы вы добавить код, который вы использовали findAllEmployeeAndNote ?.

4. Вы можете вернуть Optional<ResponseDto>

5. Спасибо. Необязательно или попробуйте catch также работает. Большое спасибо