Skip to content
javabypankaj
HomeLibraryPopularCommunity
09
JPA & Hibernate
17 topics · 69 questions
1JPA Fundamentals0/552N+1 Problem & Fetching0/223Entity Mapping: Relationships0/554Entity Mapping: Keys, Columns & Annotations0/885Embeddable, Inheritance & Secondary Tables0/556Spring Data Repositories0/447Queries: JPQL, Native, Derived, Criteria0/668Projections: Interface, DTO, Dynamic0/449Entity Lifecycle & Auditing0/2210Locking: Optimistic & Pessimistic0/411Pagination & Sorting0/3312Performance: Large IN, Dirty Checking, OSIV0/6613Flush, Persist & Cache0/5514Cascade, Orphan Removal & Soft Delete0/2215Batch Processing0/2216Multi-Database & Migration0/2217Scheduling: @Scheduled, ShedLock, Retry0/44
1JPA Fundamentals52N+1 Problem & Fetching23Entity Mapping: Relationships54Entity Mapping: Keys, Columns & Annotations85Embeddable, Inheritance & Secondary Tables56Spring Data Repositories47Queries: JPQL, Native, Derived, Criteria68Projections: Interface, DTO, Dynamic49Entity Lifecycle & Auditing210Locking: Optimistic & Pessimistic411Pagination & Sorting312Performance: Large IN, Dirty Checking, OSIV613Flush, Persist & Cache514Cascade, Orphan Removal & Soft Delete215Batch Processing216Multi-Database & Migration217Scheduling: @Scheduled, ShedLock, Retry4
17 topics69 Qs0%
01Core Java17002OOP3203Collections6704Exception Handling2805Concurrency & Multithreading12706Java Streams, Lambda & Functional Programming32807Spring & Spring Boot2608Transactions3209JPA & Hibernate6910Microservices19411Kafka & Messaging9112DevOps, CI/CD & Tooling13313Database & SQL14114REST API & Web4015Design Patterns & LLD5716Advanced Java7117Coding Problems: DSA49218AWS & Cloud4119Data Engineering19420QA, Testing & SDET4121System Design3522Security2023Behavioral / HR: STAR Method37
17Topics
69Questions
0%Complete
10 of 17 topics
Topics
1JPA Fundamentals0/552N+1 Problem & Fetching0/223Entity Mapping: Relationships0/554Entity Mapping: Keys, Columns & Annotations0/885Embeddable, Inheritance & Secondary Tables0/556Spring Data Repositories0/447Queries: JPQL, Native, Derived, Criteria0/668Projections: Interface, DTO, Dynamic0/449Entity Lifecycle & Auditing0/22
10Locking: Optimistic & Pessimistic0/44
11Pagination & Sorting0/3312Performance: Large IN, Dirty Checking, OSIV0/6613Flush, Persist & Cache0/5514Cascade, Orphan Removal & Soft Delete0/2215Batch Processing0/2216Multi-Database & Migration0/2217Scheduling: @Scheduled, ShedLock, Retry0/44

Locking: Optimistic & Pessimistic

JPA & Hibernate·Topic 10 of 17·4 questions
Q1Optimistic vs pessimistic locking?

Optimistic locking detects conflicts at commit time using a version column and retries on failure, while pessimistic locking prevents conflicts by acquiring a database row lock upfront and making others wait.

Read Answer
Q2Optimistic vs pessimistic by conflict frequency?

When many concurrent writers target the same row (high contention), pessimistic locking avoids retry storms; when conflicts are rare (low contention), optimistic locking maximizes throughput without holding locks.

Read Answer
Q3How does @Version optimistic locking work internally?

@Version adds a WHERE version=? predicate to every UPDATE so that zero rows affected means a concurrent change, and the standard remedy is a bounded retry that reloads the entity in a fresh transaction.

Read Answer
Q4What is @Lock and LockModeType?

@Lock on a Spring Data repository method sets the LockModeType per query, with PESSIMISTIC_WRITE for exclusive row locks and PESSIMISTIC_READ for shared locks, chosen when contention is high enough that optimistic retries waste more than pessimistic waiting.

Read Answer
Previous · Topic 9Entity Lifecycle & Auditing2 questionsNext · Topic 11Pagination & Sorting3 questions
javabypankaj© 2026 javabypankaj
PrivacyTerms
HomeSearchLibrary