Записи были исключены из объекта подробностей весной (операция удаления) - PullRequest
0 голосов
/ 16 марта 2020

Я использую репозиторий JPA, и при сохранении это вызывает эту проблему. Здесь, My Details Objects, иногда исключаются, а иногда и вводятся правильно. Я не знаю, что именно вызывает?

Мои POJO такие,

AB C (Основной объект)

@Entity
@Table(name = "tblabc")
@Data
@ToString(exclude = {"abcDetails"})
@EqualsAndHashCode(exclude = {"abcDetails"})
public class ABC {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH},mappedBy = "abc")
    @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE,
            org.hibernate.annotations.CascadeType.DELETE,
            org.hibernate.annotations.CascadeType.MERGE,
            org.hibernate.annotations.CascadeType.PERSIST,
            org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
    private Set<ABCDetails> abcDetails;
}

ABCDetails

@Data
@Entity
@Table(name = "tblabcdetails")
@ToString(exclude = {"abc", "abcProDetails"})
@EqualsAndHashCode(exclude = {"abc", "abcProDetails"})
public class ABCDetails {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String productName;
    private String productCode;

    @ManyToOne
    private ABC abc;

    @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}, mappedBy = "abcDetails")
    @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE,
            org.hibernate.annotations.CascadeType.DELETE,
            org.hibernate.annotations.CascadeType.MERGE,
            org.hibernate.annotations.CascadeType.PERSIST,
            org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
    private Set<ABCProDetails> abcProDetails;
}

ABCProDetails

@Data
@Entity
@Table(name = "tblabcprodetails")
@ToString(exclude = {"abcDetails"})
@EqualsAndHashCode(exclude = {"abcDetails"})
public class ABCProDetails {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String subProductName;
    private String subProductCode;

    @ManyToOne
    private ABC abc;

    @ManyToOne
    private ABCDetails abcDetails;

}

Здесь Json объекта, иногда обе записи сохраняются, а иногда только 1-я.,

{
      "name":"Darsh",
      "abcdetails":[
       {
        "productName": "P1",
        "productCode":"P1",
        "abcProDetails":[
             {
                 "subProductName":"Su1",
                 "subProductCode":"Su1"
             },
             {
                 "subProductName":"Su2",
                 "subProductCode":"Su2"
             }
           ]
       },
    {
        "productName": "P2",
        "productCode":"P2",
        "abcProDetails":[
             {
                 "subProductName":"Su3",
                 "subProductCode":"Su3"
             },
             {
                 "subProductName":"Su4",
                 "subProductCode":"Su4"
             }
           ]
       }
    ]
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...