Spring Data JPA не заполняет дочернюю таблицу в один ко многим - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть JSON, подобный этому:

{
  "pcSignatureHash": "String",
  "pcSignature": "String",
  "infectedBy": "String",
  "agent": {
    "userCode": 0
  },
  "pc": {
    "name": "String",
    "userName": "String",
    "osType": "String",
    "domainName": "String",
    "cpuId": "String",
    "osVersion": "String",
    "macId": "String",
    "vm": true,
    "friendlyName": "String",
    "statuses": [
      {
        "firewall": true,
        "firewallTestDate": "String"
      }
    ]
  }
}

Он не хранит статусы в базе данных.

инфекции имеют отношение 1 к 1 с ПК и ПК имеют отношение «1 ко многим» со статусами .

Модели правильно настроены как 1, имеют Infections в PCs и Set<Statuses> вПК и Statuses имеют PCs в своей модели.

Есть ли другой способ хранения данных?Если я храню статусы отдельно , что не имеет смысла , то он дважды сохраняет ПК, потому что нам нужно передать объект ПК как внешний ключ.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Ваши лица должны быть как ниже.Пожалуйста, измените соответствующим образом.

Объект корзины

@Entity
@Table(name="CART")
public class Cart {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="cart_id")
private long id;

@Column(name="total")
private double total;

@Column(name="name")
private String name;

@OneToMany(mappedBy="cart")
private Set<Items> items;

// Getter Setter methods for properties

}

Элемент позиции

@Entity
@Table(name="ITEMS")
public class Items {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private long id;

@Column(name="item_id")
private String itemId;

@Column(name="item_total")
private double itemTotal;

@Column(name="quantity")
private int quantity;

@ManyToOne
@JoinColumn(name="cart_id", nullable=false)
private Cart cart;
// Getter Setter methods for properties

}

0 голосов
/ 04 декабря 2018

Вы неправильно поняли реляционное отображение.В отношениях OneToMany у вас есть одна сторона с @OneToMany и одна с @ManyToOne.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...