У меня проблема с отношением «многие ко многим».
Здесь я вставлю код
User.kt
@Entity
@Getter
@Setter
@Builder
@Inheritance(strategy = InheritanceType.JOINED)
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "USER", schema = "public")
data class User(
@JsonView(Views.Base::class)
var username: String,
@JsonView(Views.UserExtended::class)
@OneToMany(mappedBy = "user", cascade = [CascadeType.ALL], orphanRemoval = true)
@JsonManagedReference
var projects: List<UserProject>? = mutableListOf()
UserProject.kt
@Entity
@Getter
@Setter
@Builder
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "USER_PROJECT", schema = "public")
data class UserProject(
@JsonView(Views.ProjectExtended::class)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
val user: User?,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "project_id")
val project: Project?,
@JsonView(Views.ProjectExtended::class)
val projectRole: String
) : BaseEntity() {}
Project.kt
@Entity
@Getter
@Setter
@Builder
@NoArgsConstructor
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "PROJECT", schema = "public")
data class Project (
@JsonView(Views.Base::class)
val name: String?,
@OneToMany(mappedBy = "project", cascade = [CascadeType.ALL], orphanRemoval = true)
@JsonView(Views.ProjectExtended::class)
var users: List<UserProject>?
) : BaseEntity() {}
И я иду через бесконечный цикл.Что я сделал, так это просто сделал Views, чтобы преодолеть проблему.Но я также использую QueryDSL на @RepositoryRestResource, который дает мне автоматический предикат для URL. И проблема в том, что я не могу просто добавить @ Jsonview в интерфейс RepositoryRestResource.
Я пытался сделать Projection, но он дал мне результат цикла Infinity, потому что @ JsonView не работает на Projection и интерфейсе
Есть ли у кого-то предложение, какя мог преодолеть эту проблему?