这里我的表:
目前,我正在对实体进行建模,如下所示:
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
@Entity
@Table(name = "GITTBUSUARIS")
public class Usuari {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "USUARIS_ID")
private Integer id;
@Column(name = "USUARIS_CODI")
private String codi;
@Column(name = "USUARIS_NOM")
private String nom;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "id.usuari", fetch = FetchType.EAGER)
private List<PermisUsuari> permisos;
}
As you can see, `permisos` is a `OneToMany` to `PermisUsuari`.
```lang-java
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
@Entity
@Table(name = "GITTBUSUARISPERMISOS")
public class PermisUsuari {
@EmbeddedId
private PermisUsuariId id;
}
而PermisUsauriId
为:
@Embeddable
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class PermisUsuariId implements Serializable {
@ManyToOne(optional = false, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "USUARISPERMISOS_USUARIID", nullable = false)
private Usuari usuari;
@ManyToOne(optional = false, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "USUARISPERMISOS_ROLID", nullable = false)
private Rol rol;
}
当我得到任何Usuari
时,我会把它放到它们的PermisUsuari
中,同时它也会得到它的Usuari
,依此类推...
大概是这样的:
{
"id":2,
"codi":"11111111A",
"nom":"Usuari A",
"permisos":[
{
"id":{
"usuari":{
"id":2,
"codi":"11111111A",
"nom":"Usuari A",
"permisos":[
{
"id":{
"usuari":{
"id":2,
"codi":"11111111A",
"nom":"Usuari A",
"permisos":[
{
"id":{
"usuari":{
"id":2,
"codi":"11111111A",
"nom":"Usuari A",
"permisos":[
{
"id":{
"usuari":{
"id":2,
"codi":"11111111A",
"nom":"Usuari A",
"permisos":[
{
"id":{
"usuari":{
"id":2,
"codi":"11111111A",
"nom":"Usuari A",
"permisos":
关于如何解决这个模型的任何想法。
1条答案
按热度按时间vngu2lb81#
你的实体模型太奇怪了...类PermisUsauriId在类PermisUsuari里面,它也在类Usuari里面,它就像循环一样永远不会停止。我想JPA对此无能为力,试着重建一个更好的数据库关系。