Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is JPA and why is it used in Spring Boot?
JPA (Java Persistence API) is a way to manage data between Java objects and a database. It helps Spring Boot apps save, update, and load data easily without writing complex SQL.
Click to reveal answer
beginner
What does a relationship in JPA represent?
A relationship in JPA shows how two or more data tables connect, like how a person has many addresses. It helps keep data linked and organized.
Click to reveal answer
beginner
Name the three main types of relationships in JPA.
The three main types are: One-to-One (one item linked to one item), One-to-Many (one item linked to many items), and Many-to-Many (many items linked to many items).
Click to reveal answer
intermediate
Why is managing relationships important in JPA?
Managing relationships helps keep data consistent and easy to access. It avoids mistakes like missing linked data or saving wrong info.
Click to reveal answer
intermediate
How does JPA handle saving related data automatically?
JPA uses cascading options to save or delete related data together. For example, deleting a user can also delete their posts if cascade is set.
Click to reveal answer
Which JPA annotation defines a one-to-many relationship?
A@OneToOne
B@OneToMany
C@ManyToOne
D@ManyToMany
✗ Incorrect
The @OneToMany annotation is used to define a one-to-many relationship in JPA.
Why are relationships important in JPA?
ATo avoid using databases
BTo speed up the application startup
CTo link data tables and keep data consistent
DTo write SQL queries manually
✗ Incorrect
Relationships link tables and help keep data consistent and easy to manage.
What does cascading in JPA do?
AAutomatically saves or deletes related entities
BChanges database schema automatically
CEncrypts data before saving
DGenerates SQL queries for reports
✗ Incorrect
Cascading lets JPA automatically save or delete related data when the main entity changes.
Which relationship type means many items linked to many items?
AOne-to-One
BOne-to-Many
CMany-to-One
DMany-to-Many
✗ Incorrect
Many-to-Many means many items on one side link to many items on the other side.
In JPA, what annotation would you use to link two entities with a one-to-one relationship?
A@OneToOne
B@ManyToOne
C@OneToMany
D@ManyToMany
✗ Incorrect
The @OneToOne annotation defines a one-to-one relationship between two entities.
Explain why relationships matter in JPA and how they help manage data.
Think about how real-life connections between things help organize information.
You got /4 concepts.
Describe the main types of relationships in JPA and give a simple example for each.
Use examples like person-address, author-books, or students-courses.
You got /3 concepts.
Practice
(1/5)
1. Why are relationships important in JPA when working with entities?
easy
A. They allow easy navigation and management of related data between entities.
B. They improve the speed of the Java compiler.
C. They automatically generate user interfaces for entities.
D. They replace the need for database tables.
Solution
Step 1: Understand the role of relationships in JPA
Relationships link entities so you can access related data easily, like a map connecting places.
Step 2: Recognize the benefit of these links
They help manage and query related data without manual joins or extra queries.
Final Answer:
They allow easy navigation and management of related data between entities. -> Option A
Quick Check:
Relationships = Easy data navigation [OK]
Hint: Think of relationships as bridges connecting data [OK]
Common Mistakes:
Confusing relationships with UI features
Assuming relationships speed up compilation
Believing relationships remove database tables
2. Which annotation correctly defines a many-to-one relationship in JPA?
easy
A. @OneToMany
B. @ManyToMany
C. @ManyToOne
D. @OneToOne
Solution
Step 1: Recall JPA relationship annotations
@ManyToOne is used when many entities relate to one entity, like many orders to one customer.
Step 2: Match the annotation to the relationship type
@ManyToOne fits the question, others represent different relationships.
Final Answer:
@ManyToOne -> Option C
Quick Check:
@ManyToOne = many to one link [OK]
Hint: Many to one? Use @ManyToOne annotation [OK]
Common Mistakes:
Using @OneToMany instead of @ManyToOne
Confusing @OneToOne with many-to-one
Mixing up @ManyToMany for simple many-to-one
3. Given the following JPA entities, what will be the output when fetching a Book and accessing its author.getName()?
@Entity
class Book {
@Id
Long id;
String title;
@ManyToOne
Author author;
}
@Entity
class Author {
@Id
Long id;
String name;
}
medium
A. NullPointerException because author is not initialized.
B. A compilation error due to missing @JoinColumn annotation.
C. The book's title will be returned instead of the author's name.
D. The author's name linked to the book will be returned.
Solution
Step 1: Understand the @ManyToOne relationship
The Book entity has a many-to-one link to Author, so each book has one author object.
Step 2: Accessing author.getName()
When fetching a Book, JPA loads the linked Author, so calling getName() returns the author's name.
Final Answer:
The author's name linked to the book will be returned. -> Option D
Quick Check:
Book.author.getName() = Author's name [OK]
Hint: ManyToOne means book has one author object [OK]
Common Mistakes:
Assuming missing @JoinColumn causes compile error
Expecting NullPointerException without checking data
Confusing book title with author name
4. Identify the error in this JPA relationship mapping:
@Entity
class Order {
@Id
Long id;
@OneToMany
Customer customer;
}
medium
A. Using @OneToMany on a single Customer field instead of a collection.
B. Missing @Id annotation on Customer entity.
C. Order entity should not have any relationships.
D. The @OneToMany annotation should be replaced with @ManyToOne.
Solution
Step 1: Check the @OneToMany usage
@OneToMany expects a collection (like List or Set), not a single object.
Step 2: Identify the field type mismatch
The field 'customer' is a single Customer, so @OneToMany is incorrect here.
Final Answer:
Using @OneToMany on a single Customer field instead of a collection. -> Option A
Quick Check:
@OneToMany needs collection, not single object [OK]
Hint: @OneToMany always needs a collection type [OK]
Common Mistakes:
Applying @OneToMany to a single entity field
Ignoring collection requirement for @OneToMany
Confusing relationship direction annotations
5. You have two entities: Student and Course. A student can enroll in many courses, and a course can have many students. Which JPA relationship setup correctly models this, and why is it important to define it properly?
hard
A. Use @OneToMany on Student and @ManyToOne on Course; it simplifies the database schema.
B. Use @ManyToMany on both sides with a join table; it ensures proper linking and querying of students and courses.
C. Use @OneToOne on both entities; it guarantees unique pairs.
D. No relationship annotations needed; just store IDs manually.
Solution
Step 1: Identify the relationship type
Many students can enroll in many courses, so the relationship is many-to-many.
Step 2: Choose correct annotations and explain importance
@ManyToMany on both sides with a join table models this correctly, allowing JPA to manage links and queries efficiently.
Final Answer:
Use @ManyToMany on both sides with a join table; it ensures proper linking and querying of students and courses. -> Option B
Quick Check:
Many-to-many needs @ManyToMany with join table [OK]
Hint: Many-to-many? Use @ManyToMany with join table [OK]
Common Mistakes:
Using one-to-many for many-to-many relationships
Skipping relationship annotations and managing IDs manually