Question:
What is the difference between Hibernate and Spring Data JPA?
JPA : JPA(java persistence
api) is API specifications while Hibernate is the implementation of all the
JPA guidelines and Hibernate is a framework.
Spring Data JPA : Hibernate is a
JPA implementation, while Spring Data JPA is a
JPA data access abstraction. Spring Data JPA cannot work without a
JPA provider.
By default Spring Data JPA use Hibernate. please check in spring data
dependencies.
Reference: Spring Data JPA
Question: How to use Criteria Queries in Spring Boot Data Jpa Application?
JPA 2 introduces a criteria API that you can use to build queries
programmatically.
To support specifications, you can extend your repository interface with
the JpaSpecificationExecutor interface, as follows:
public interface CustomerRepository extends CrudRepository<Customer, Long>, JpaSpecificationExecutor<Customer> {
…
}
Qusetion: How to call stored procedures in spring Data JPA?
1) we can define stored procedures using @NamedStoredProcedureQueries and name(like test_product), procedureName, parameters(IN/OUT parameter using @StoredProcedureParameter) etc. inside entity class(on top on the class)
2) Then we can call stored procedures inside repository using @Procedure like below.
@Procedure(name = "test_product")
void testProduct(@Param("inParam1") String inParam1);
In JPA Persist is used to save new entities like save in hibernate.
In JPA Merge is used to update existing entities like update in hibernate.
Question: find Vs get spring data jpa? findBy Vs getBy spring data jpa?
Answer: Thre are some difference while any method start with get or find for example.
User getByEmailAddress(EmailAddress emailAddres)
User findByEmailAddress(EmailAddress emailAdress);
- get : It will Throws an EmptyResultDataAccessException exception while no record found by the query executed.Throws an IllegalArgumentException when the emailAddress handed to the method is null.
- find: It will Returns null while no record found by the query executed. Also accepts null as the value for emailAddress. click here to get more details
Question: Difference between getOne and findById in Spring Data
JPA?
getOne: This method will always return a proxy without hitting the database (lazily fetched).It internally invokes EntityManager.getReference() method.This method will throw EntityNotFoundException at the time of actual access if the requested entity does not exist in the database.
Example:
Example:
getOne: This method will always return a proxy without hitting the database (lazily fetched).It internally invokes EntityManager.getReference() method.This method will throw EntityNotFoundException at the time of actual access if the requested entity does not exist in the database.
Example:
T getOne(ID id);
findById: This method will always hit the database and return the real object
mapping to a row in the database. it returns null if no record exists in
database. It is EAGER loaded operation.Example:
Optional<T> findById(ID primaryKey);.
Related Tutorials
- Hibernate Session Interface
- Merge Vs SaveOrUpdate In Hibernate
- Spring Data JPA Interface Methods
- Stored Procedure In Mysql
- Mysql Interview Questions
- Hibernate interview questions part-1
- Hibernate interview questions part-2
- Hibernate interview questions part-3
- Hibernate interview questions part-4
- Hibernate interview questions part-5
No comments:
Post a Comment