Spring Boot @OneToMany

Sridhar Narayanasamy
2 min readApr 16, 2023

--

In Spring Boot, the @OneToMany annotation is a powerful tool that is used to establish a one-to-many relationship between two entities. It allows developers to create a relationship between two entities, where one entity has a collection of another entity. This blog post will explain the @OneToMany annotation and its usage in Spring Boot.

What is the @OneToMany Annotation?

The @OneToMany annotation is used to define a one-to-many relationship between two entities. It allows one entity to have a collection of another entity. The relationship between the two entities is established by adding a foreign key column to the child entity that references the primary key column of the parent entity.

Usage of @OneToMany Annotation:

Here are some use cases of the @OneToMany annotation in Spring Boot:

  • One-To-Many Unidirectional Relationship:
    In a unidirectional relationship, only one entity has a reference to the other entity. In this case, the @OneToMany annotation is added to the parent entity to define the relationship. Here is an example:
@Entity
public class Parent {
@Id
private Long id;
private String name;

@OneToMany(cascade = CascadeType.ALL)
private List<Child> children;
}

@Entity
public class Child {
@Id
private Long id;
private String name;
}

  • One-To-Many Bidirectional Relationship:
    In a bidirectional relationship, both entities have a reference to each other. In this case, the @OneToMany annotation is added to the parent entity, and the @ManyToOne annotation is added to the child entity. Here is an example:
@Entity
public class Parent {
@Id
private Long id;
private String name;

@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
private List<Child> children;
}

@Entity
public class Child {
@Id
private Long id;
private String name;

@ManyToOne
@JoinColumn(name = "parent_id")
private Parent parent;
}

Conclusion:

In conclusion, the @OneToMany annotation is an essential tool for establishing a one-to-many relationship between two entities in Spring Boot. It is a powerful tool that allows developers to create complex relationships between entities. By using the @OneToMany annotation, developers can write more robust and reliable code that is easy to maintain and understand.

--

--