我有这样的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
且PC中有Set<Statuses>
,而Statuses
的模型中有PCs
。
还有其他方法可以存储数据吗? 如果我分别存储状态没道理,它将存储两次PC,因为我们需要将PC对象作为外键传递。
答案 0 :(得分:0)
您没有正确理解关系映射。在一对多关系中,一侧与@OneToMany
,另一侧与@ManyToOne
。
答案 1 :(得分:0)
您的实体应如下所示。 请进行相应的修改。
购物车实体
@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
}