Junior — Middle
Have you created custom queries (JPQL or SQL) when working with Spring Data JPA?
sobes.tech AI
Answer from AI
Yes, when working with Spring Data JPA, it is often necessary to write custom queries for more complex selections that are not covered by standard repository methods.
You can use:
- JPQL (Java Persistence Query Language) — an object-oriented query language similar to SQL but works with entities.
- Native SQL queries — if maximum performance or specific database syntax is required.
Example of using JPQL in Spring Data JPA:
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u WHERE u.email = :email")
Optional<User> findByEmail(@Param("email") String email);
}
Example of a native SQL query:
public interface UserRepository extends JpaRepository<User, Long> {
@Query(value = "SELECT * FROM users WHERE email = :email", nativeQuery = true)
Optional<User> findByEmailNative(@Param("email") String email);
}
Thus, custom queries allow flexible data retrieval management.