英文:
@onetomany and @manytoone joint table while geting all the datas repeating the same parent table again and again SpringBoot
问题
[
{
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [...]
},
...
},
...
]
},
...
},
...
]
},
...
},
...
]
},
...
]
Note: The JSON structure provided is a simplified representation of your original data with repetitive nesting. If you need further assistance or solutions to your issue, please provide more context or specify the problem you are facing.
英文:
@onetomany and @manytoone joint table while geting all the datas repeating the same parent table again and again
this is my @Entity Class
package com.social.webapp.entity;
import java.io.Serializable;
import java.sql.Date;
import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import com.sun.istack.Nullable;
@Entity
@Table(name = "userdetails")
public class UserDetails implements Serializable{
private static final long serialVersionUID = -7302800336276816169L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
long userid;
@Column(name = "mobilenumber",nullable = false)
@NotNull
String mobilenumber;
@Column(name = "email",nullable =false )
@Nullable
String email;
@Column(name = "profilename",nullable = true)
@Nullable
String profilename;
@Column(name = "profileimage",nullable = true)
@Nullable
String profileimage;
@Column(name = "firebaseuid",nullable = false)
@NotNull
String firebaseuid;
@Column(name = "createddate",nullable = false)
@NotNull
Date createddate;
@Column(name = "createdtime",nullable = false)
@NotNull
Time createdtime;
@Column(name = "delete",nullable = true)
@Nullable
int delete;
@OneToMany(targetEntity = PostDetails.class,fetch = FetchType.LAZY,mappedBy = "userdetails",cascade = CascadeType.ALL)
public List<PostDetails> postlist = new ArrayList<PostDetails>();
public UserDetails() {
// TODO Auto-generated constructor stub
}
public UserDetails(@NotNull String mobilenumber, String email, String profilename, String profileimage,
@NotNull String firebaseuid, @NotNull Date createddate, @NotNull Time createdtime, int delete) {
this.mobilenumber = mobilenumber;
this.email = email;
this.profilename = profilename;
this.profileimage = profileimage;
this.firebaseuid = firebaseuid;
this.createddate = createddate;
this.createdtime = createdtime;
this.delete = delete;
}
public long getUserid() {
return userid;
}
public void setUserid(long userid) {
this.userid = userid;
}
public String getMobilenumber() {
return mobilenumber;
}
public void setMobilenumber(String mobilenumber) {
this.mobilenumber = mobilenumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getProfilename() {
return profilename;
}
public void setProfilename(String profilename) {
this.profilename = profilename;
}
public String getProfileimage() {
return profileimage;
}
public void setProfileimage(String profileimage) {
this.profileimage = profileimage;
}
public String getFirebaseuid() {
return firebaseuid;
}
public void setFirebaseuid(String firebaseuid) {
this.firebaseuid = firebaseuid;
}
public Date getCreateddate() {
return createddate;
}
public void setCreateddate(Date createddate) {
this.createddate = createddate;
}
public Time getCreatedtime() {
return createdtime;
}
public void setCreatedtime(Time createdtime) {
this.createdtime = createdtime;
}
public int getDelete() {
return delete;
}
public void setDelete(int delete) {
this.delete = delete;
}
// public java.util.List<PostDetails> getPostlist() {
// return postlist;
// }
// public void setPostlist(java.util.List<PostDetails> postlist) {
// this.postlist = postlist;
// }
}
this is another @Entity
package com.social.webapp.entity;
import java.io.Serializable;
import java.sql.Date;
import java.sql.Time;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.sun.istack.Nullable;
@Entity
@Table(name = "postdetails")
//@JsonInclude(value = Include.NON_NULL)
//@JsonIgnoreProperties(ignoreUnknown = true)
public class PostDetails implements Serializable{
private static final long serialVersionUID = -7302800336276816169L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long postid;
@ManyToOne
@JoinColumn(name = "userdetail_id")
@JsonIgnoreProperties(ignoreUnknown = true)
public UserDetails userdetails;
@Column(name = "message")
@Nullable
private String message;
@Column(name = "likecount",nullable = true)
private String likescount;
@Column(name = "sharecount",nullable = true)
private String sharecount;
@Column(name = "postdate",nullable = true)
private Date postdate;
@Column(name = "posttime",nullable = true)
private Time posttime;
@Column(name = "deletedate",nullable = true)
private Date deletedate;
@Column(name = "deletetime",nullable = true)
private Time deletetime;
@Column(name = "delete",nullable = true)
private int delete;
@Lob @Basic(fetch = FetchType.LAZY)
@Column(name = "filedata",nullable = true,length = 1000000000)
private byte[] filedata;
@Column(name = "originalname",nullable = true)
private String originalname;
@Column(name = "filetype",nullable=true)
private String filetype;
@Column (name = "filesize",nullable=true)
private long filesize;
public PostDetails( String message, Date postdate, Time posttime, byte[] filedata,
String originalname, String filetype, long filesize) {
super();
// this.userdetailid=userdetailid;
this.message = message;
this.postdate = postdate;
this.posttime = posttime;
this.filedata = filedata;
this.originalname = originalname;
this.filetype = filetype;
this.filesize = filesize;
}
public PostDetails() {
// TODO Auto-generated constructor stub
}
public UserDetails getUserdetailid() {
return userdetails;
}
public void setUserdetailid(UserDetails userdetailid) {
this.userdetails = userdetailid;
}
}
when i'm geting all the datas from the userdetails class i'm not getting the postdetails class in the list insteard of i'm getting the userdetails class in a loop ...
[
{
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance Raj (PA1912005020001)",
"profileimage": "https://lh6.googleusercontent.com/-ZokXcLoflks/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnDyqHvXP3sA_7POR3ejVvw2KM-4A/photo.jpg",
"firebaseuid": "GtPkv3DbGhXct30HYA5VprxeWDm1",
"createddate": "2020-09-02",
"createdtime": "19:47:02",
"delete": 1,
"postlist": [
{
"userdetails": {
"userid": 1,
"mobilenumber": "null",
"email": "lr5122@srmist.edu.in",
"profilename": "Lawrance
like this its comming as al big infinitive loop i don't know why i tried all the was i can't find the solutions ..any one help me to find the solutions ...
答案1
得分: 1
解决方案:
使用@JsonManagedReference注解来标记第一个实例化的对象。
使用@JsonBackReference注解来标记第二个实例化的对象。
英文:
Solution:
Use
@JsonManagedReference annotation for the first objects instantiated
@JsonBackReference annotation for the second objects instantiated
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论