JPAを使用して複数のテーブルにレコードを挿入する

モニシュワランV:

つまり、3つのエンティティがあります。

  1. 製品
  2. 製品詳細
  3. 株式
  4. カテゴリー参照は以下に与えられます

製品の詳細を取得しようとすると、ショーを保存しようとすると正常に動作します

2020-08-12 13:17:22.279  WARN 18612 --- [nio-9002-exec-1] .c.j.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class com.eMart.main.entity.Product]]: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot handle managed/back reference 'defaultReference': back reference type (java.util.List) not compatible with managed type (com.eMart.main.entity.Product)

私の質問は、データベースに製品を追加する方法と、エンティティを最適化する方法を教えてください。

入力

{"skuId": "2"、 "category":{"categoryId":2、 "categoryName": "food"}、 "description": "牛の牛乳"、 "stock":{"stockId":1、 " inventoryCount ":5、" selfCount ":5}、" productDetails ":[{" productDetailId ":1、" cost ":10.0、" currency ":" inr "、" expiryDate ":" 2020-08-11T18:30 :00.000 + 00:00 "、" supplierCode ":1}]}

コントローラー方式

@PostMapping(value = "/test")
    public ResponseEntity<Product> test(@RequestBody Product product) throws Exception {
productRepositry.save(product);
        return new ResponseEntity(productRepositry.findAll(),OK);

    }
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Entity
public class Product {
    @Id
    @Column(name = "SKU_ID")
    String skuId=null;
    @ManyToOne
    @JoinColumn(name = "category_id")
    @JsonManagedReference
    Category category;

    @Column(name = "description")
    String description=null;

   @JsonManagedReference
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "stock_id", referencedColumnName = "id")
    Stock stock=null;

    @JsonManagedReference
    @OneToMany(mappedBy = "product", fetch = FetchType.LAZY,
            cascade = CascadeType.ALL)
    Set<ProductDetails> productDetails;
}
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
     @Entity
    public class Stock {
    @Id
    @Column(name = "id")
    Integer stockId;
    @Column(name = "inventory_count")
    Integer inventoryCount;
    @Column(name = "self_count")
    Integer selfCount;
    @JsonBackReference
    @OneToOne(mappedBy = "stock",cascade = CascadeType.ALL)
    Product product;
    }
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor

public class Category {
    @Id
    @Column(name = "category_id")
    Integer categoryId;

    @Column(name = "category_name")
    String categoryName;



    @OneToMany(mappedBy = "category", fetch = FetchType.LAZY,
            cascade = CascadeType.ALL)
    @JsonBackReference
    List<Product> product;

    @Override
    public String toString() {
        return "Category{" +
                "categoryId=" + categoryId +
                ", categoryName='" + categoryName + '\'' +
                ", product=" + product +
                '}';
    }
}
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Entity
public class ProductDetails {
    @Id
    @Column(name = "id")
    Integer productDetailId;
    @Column(name = "cost")
    Double cost;
    @Column(name = "currency")
    String currency;
    @Column(name = "expiry_date")
    Date expiryDate;

    Integer supplierCode;

    @JsonBackReference
    @ManyToOne(fetch = FetchType.LAZY)
    Product product;
}
SSK:

私はあなたが追加見逃していると思います@JoinColumnProductProductDetails実体

@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SKU_ID")
Product product;

また、@ JsonManagedReferenceを削除しCategoryたり、Stock

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

entityManagerを使用して@GeneratedValueを含むテーブルに複数のレコードを挿入する

分類Dev

Pkをインクリメントして、歌うレコードを使用してテーブルに複数のレコードを挿入する

分類Dev

linq2sqlを使用して複数のファイルを含む複数のテーブルにレコードを挿入する方法

分類Dev

forループを使用してデータベーステーブルに複数のレコードを挿入する方法

分類Dev

テーブルに複数のレコードを挿入するLaravel

分類Dev

Javaを使用してMySQLテーブルにレコードを挿入する

分類Dev

forループを使用してSQLServerデータベースに複数のレコードを挿入する

分類Dev

XMLを使用してテーブルに複数の値を挿入する

分類Dev

結合を使用してテーブルに複数の行を挿入する

分類Dev

SSISパッケージを使用して、単一のExcelシートから複数のテーブルにレコードを挿入します

分類Dev

クエリビルダーlaravelを使用してmysqlに複数のレコードを挿入する方法

分類Dev

関連付けを使用して複数のテーブルに挿入を続編する(カスケード)

分類Dev

SCOPE_IDENTITYを使用して複数のテーブルに挿入する

分類Dev

同時に複数のユーザーからのレコードをテーブルに挿入します

分類Dev

Nhibernate hbmマッピングを使用して、同じIDを持つ複数のテーブルにレコードを挿入します

分類Dev

複数の基準に応じて、あるテーブルの特定の列から別のテーブルにレコードを挿入する

分類Dev

forループに複数のレコードを挿入する

分類Dev

RowMapperを使用してレコードをテーブルに挿入します

分類Dev

POSTAPIを使用してBigQueryに複数のレコードを挿入します

分類Dev

2つのテーブルに複数のレコードを挿入するPostgres関数

分類Dev

既存のID列を持つテーブルに複数のレコードを挿入します

分類Dev

あるテーブルから別のテーブルにレコードを挿入してから、挿入されたレコードを削除します

分類Dev

Yii2の複数のテーブルに同じデータレコードを挿入する方法

分類Dev

SQL Server:同時に2つのテーブルに複数のレコードを挿入します

分類Dev

SQLAlchemyでJSONを使用して複数のレコードを挿入する方法

分類Dev

NodeJSを使用してmySQLに複数のレコードを挿入し、挿入を防ぎ、各レコードのIDを取得する

分類Dev

C# Entity Framework を使用してテンポラル テーブルにレコードを挿入する

分類Dev

Room PersistenceLibraryを使用して複数のテーブルに挿入します

分類Dev

c#を使用してsqliteテーブルに複数のパラメーター値を挿入する

Related 関連記事

  1. 1

    entityManagerを使用して@GeneratedValueを含むテーブルに複数のレコードを挿入する

  2. 2

    Pkをインクリメントして、歌うレコードを使用してテーブルに複数のレコードを挿入する

  3. 3

    linq2sqlを使用して複数のファイルを含む複数のテーブルにレコードを挿入する方法

  4. 4

    forループを使用してデータベーステーブルに複数のレコードを挿入する方法

  5. 5

    テーブルに複数のレコードを挿入するLaravel

  6. 6

    Javaを使用してMySQLテーブルにレコードを挿入する

  7. 7

    forループを使用してSQLServerデータベースに複数のレコードを挿入する

  8. 8

    XMLを使用してテーブルに複数の値を挿入する

  9. 9

    結合を使用してテーブルに複数の行を挿入する

  10. 10

    SSISパッケージを使用して、単一のExcelシートから複数のテーブルにレコードを挿入します

  11. 11

    クエリビルダーlaravelを使用してmysqlに複数のレコードを挿入する方法

  12. 12

    関連付けを使用して複数のテーブルに挿入を続編する(カスケード)

  13. 13

    SCOPE_IDENTITYを使用して複数のテーブルに挿入する

  14. 14

    同時に複数のユーザーからのレコードをテーブルに挿入します

  15. 15

    Nhibernate hbmマッピングを使用して、同じIDを持つ複数のテーブルにレコードを挿入します

  16. 16

    複数の基準に応じて、あるテーブルの特定の列から別のテーブルにレコードを挿入する

  17. 17

    forループに複数のレコードを挿入する

  18. 18

    RowMapperを使用してレコードをテーブルに挿入します

  19. 19

    POSTAPIを使用してBigQueryに複数のレコードを挿入します

  20. 20

    2つのテーブルに複数のレコードを挿入するPostgres関数

  21. 21

    既存のID列を持つテーブルに複数のレコードを挿入します

  22. 22

    あるテーブルから別のテーブルにレコードを挿入してから、挿入されたレコードを削除します

  23. 23

    Yii2の複数のテーブルに同じデータレコードを挿入する方法

  24. 24

    SQL Server:同時に2つのテーブルに複数のレコードを挿入します

  25. 25

    SQLAlchemyでJSONを使用して複数のレコードを挿入する方法

  26. 26

    NodeJSを使用してmySQLに複数のレコードを挿入し、挿入を防ぎ、各レコードのIDを取得する

  27. 27

    C# Entity Framework を使用してテンポラル テーブルにレコードを挿入する

  28. 28

    Room PersistenceLibraryを使用して複数のテーブルに挿入します

  29. 29

    c#を使用してsqliteテーブルに複数のパラメーター値を挿入する

ホットタグ

アーカイブ