https://www.callicoder.com/hibernate-spring-boot-jpa-many-to-many-mapping-example/
package com.example.demo.hibernetexample.posttag.entity;
import jakarta.persistence.*;
import lombok.*;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "post")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Builder
@ToString
public class Post {
@Id
@GeneratedValue(strategy = jakarta.persistence.GenerationType.IDENTITY)
@Column(name = "post_id")
private Integer postId;
@Column(name = "post_name")
private String postName;
@ManyToMany(cascade = { CascadeType.ALL },fetch = FetchType.EAGER)
@JoinTable(name = "post_tags", joinColumns = {
@JoinColumn(name = "post_id", referencedColumnName = "post_id")
}, inverseJoinColumns = {
@JoinColumn(name = "tag_id", referencedColumnName = "tag_id")
})
private Set<Tags> tags = new HashSet<Tags>();@JsonManagedReference
}
package com.example.demo.hibernetexample.posttag.entity;
import jakarta.persistence.*;
import lombok.*;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "tags")
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder
@ToString
public class Tags {
@Id
@GeneratedValue(strategy = jakarta.persistence.GenerationType.IDENTITY)
@Column(name = "tag_id")
private Integer tagId;
@Column(name = "tag_name")
private String tagName;
@ManyToMany(mappedBy = "tags", cascade = { CascadeType.ALL },fetch = FetchType.EAGER)
@JsonBackReferenceprivate
Set<Post> posts = new HashSet<Post>();
}
No comments:
Post a Comment