Это мои классы моделей, и когда я использую этот код, он начинает бесконечно l oop
Set<Request> requests = Clients.getRequest();
Класс клиента
public class Client extends User {
@Column(name = "registrationcomplete")
private boolean registrationcomplete = false;
@Lob
@Column(name = "image")
private byte[] image;
@ToString.Exclude
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
@EqualsAndHashCode.Exclude
private Set<Question> questions = new HashSet<>();
@ToString.Exclude
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
@EqualsAndHashCode.Exclude
private Set<Request> requests = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<File> files = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<Call> calls = new HashSet<>();
@ToString.Exclude
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
@EqualsAndHashCode.Exclude
private Set<UserFeedBack> userFeedBacks = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
@EqualsAndHashCode.Exclude
private Set<RightMessage> rightMessages = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "client")
private Set<AdminConfirmation> adminConfirmations = new HashSet<>();
public Client() {
}
}
Запросить класс
public class Request {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private UUID uid;
@Column(name = "requestnumber", unique = true, nullable = false)
private Long requestNumber;
@Column(name = "deleted")
private boolean deleted = false;
@Column(name = "creationdate", updatable = false)
@CreatedDate
private Long creationDate;
@Column(name = "modificationdate", updatable = true)
@LastModifiedDate
private Long modificationDate;
@Column(name = "requeststatus")
private RequestStatus requestStatus;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "clientid", nullable = false)
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Client client;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "request")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<Call> calls;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "request")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<RequestLawyer> requestLawyers = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "request")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<ConsumptionPack> comments = new HashSet<>();
@ToString.Exclude
@OneToMany(fetch = FetchType.LAZY,
cascade = CascadeType.ALL,
mappedBy = "request")
@EqualsAndHashCode.Exclude
private Set<FeedBack> feedback = new HashSet<>();
@ToString.Exclude
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fileid")
private File file;
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "request")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<Notification> notifications = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "request")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<FinancialTransaction> financialTransactions = new HashSet<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "advicetypeid", nullable = true)
@EqualsAndHashCode.Exclude
@ToString.Exclude
private AdviceType advicetype;
public Request() {
}
}
АдвокатДеятельность
public class LawyerActivity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private UUID uid;
@Column(name = "typeUser")
private LawyerActivityType type;
@Column(name = "title")
private String title;
@Column(name = "description")
private String description;
@Column(name = "creationdate")
private Long creationDate;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "lawyerid")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Lawyer lawyer;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "docId")
private Doc doc;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fileid")
private File file;
public LawyerActivity() {
}
Do c класс
public class Doc {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private UUID uid;
@Column(name = "checksum")
private String checksum;
@Column(name = "name")
private String name;
@Column(name = "title")
private String title;
@Column(name = "doctype")
private DocType docType;
@Column(name = "mimetype")
private MimeType mimeType;
@Column(name = "hashcode")
private String hashCode;
@Column(name = "length")
private String length;
@Lob
@Column(name="data")
private byte[] data;
@Column(name = "creationdate")
private Long creationDate;
@Column(name = "deleted")
private boolean deleted = false;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "userid")
@EqualsAndHashCode.Exclude
private User user;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "lawyerid")
@EqualsAndHashCode.Exclude
private Lawyer lawyer;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "callid")
private Call call;
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "doc")
@EqualsAndHashCode.Exclude
private Set<LawyerActivity> activities = new HashSet<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fileid")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private File file;
public Doc() {
}
}
Класс файла
public class File {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true, nullable = false)
private UUID uid;
@Column(name = "filenumber", unique = true, nullable = false)
private Long fileNumber;
@Column(name = "title")
private String title;
@Lob
@Column(name = "description")
private String description;
@Column(name = "creationDate")
private Long creationDate;
@Column(name = "modificationdate")
private Long modificationDate;
@Column(name = "deleted")
private boolean deleted = false;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "clientid",nullable = false)
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Client client;
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "file")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<Request> requests = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "file")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<Doc> docs = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "file")
private Set<SharingPerspectives> sharingPerspectives = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL,
fetch = FetchType.LAZY,
mappedBy = "file")
private Set<LawyerActivity> activities = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "file")
@EqualsAndHashCode.Exclude
private Set<Idea> ideas = new HashSet<>();
public File() {
}
}
и это мой класс пользователя
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USERS_ID_SEQ")
@Column(unique = true, nullable = false)
private Long id;
@Column(unique = true, nullable = false)
private UUID uid;
@Column(name = "firstname")
private String firstName;
@Column(name = "lastname")
private String lastName;
@Column(name = "username",unique = true)
private String username;
@Column(name = "password")
private String password;
@Column(name = "email",unique = true)
private String email;
@Column(name = "score")
private int score;
@Column(name = "avatarhashcode")
private String avatarHashcode;
@Column(name = "active")
private Boolean active = false;
@Column(name = "usedapp")
private Boolean usedapp = false;
@Column(name = "avatarverify")
private Boolean avatarverify = false;
@Column(name = "mobilenumber", unique = true)
private Long mobileNumber;
@Column(name = "verificationcode")
private String verificationCode;
@Column(name = "creationdate", updatable = false)
@CreatedDate
private Long creationDate;
@Column(name = "modificationdate", updatable = true)
@LastModifiedDate
private Long modificationDate;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "user_role",
joinColumns = {@JoinColumn(name = "userId")},
inverseJoinColumns = {@JoinColumn(name = "roleid")})
@EqualsAndHashCode.Exclude
private Set<Role> roles = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private Set<Complain> complains;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<Setting> settings = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private Set<AccessEntry> accessEntries = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<Offcode> offcodes_from = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user2")
@EqualsAndHashCode.Exclude
private Set<Offcode> offcodes_to = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private Set<InvitedUser> invitedUsers = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<AssignDiscount> assignDiscounts= new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<Device> devices = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<Reminder> reminders = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private Set<SharingPerspectives> sharingPerspectives = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private Set<RightMessage> rightMessages = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<UserPopularity> userPopularities = new HashSet<>();
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<FinancialTransaction> financialTransactions = new HashSet<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "organizationid")
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Organization organization;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
@EqualsAndHashCode.Exclude
private Set<Doc> docs = new HashSet<>();
@ManyToMany(fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST, CascadeType.PERSIST})
@JoinTable(name = "userorg",
joinColumns = {@JoinColumn(name = "orgid")},
inverseJoinColumns = {@JoinColumn(name = "userid")})
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<Organization> organizations = new HashSet<>();
public User() {
}
public User(UUID uid, long mobileNumber) {
this.uid = uid;
this.mobileNumber = mobileNumber;
}
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) //taha
@JoinColumn(name = "wallet_id")
private Wallet wallet;
}