我有File storageDir= getExternalFilesDir(Environment.DIRECTORY_PICTURES);
类和File storageDir= new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES));
,如下所示。现在,我在order和orderdetails之间具有Order
关系,而在另一个方向上具有OrderDetails
。
one to many
可以看出one to one
具有atrr。 @Entity
@Table(name = "orders")
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = { "createdAt" }, allowGetters = true)
public class Order implements Serializable {
@JsonView(View.V1.class)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long orderNo;
//@NotBlank
//private String orderNo;
@JsonView(View.V1.class)
@Column(nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
@CreatedDate
private Date createdAt;
//@OneToOne(cascade = CascadeType.MERGE)
//@PrimaryKeyJoinColumn
//@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
//@JoinColumn(name="id")
@JsonView(View.V1.class)
@OneToMany(mappedBy="order")
private Set<OrderDetails> orderDetails;
@JsonView(View.V1.class)
@Email(message="Email should be valid")
private String email;
}
。并且Order
有一个attr。 set of orderDetails
。因此,当我保存Order对象时,我将获得具有OrderDdrtails attr的Order对象。再次有订单属性。其中包含OrderDetail等,如下所示:
OrderDetails
我可以做的一件事是将Order
内的[{"orderNo":1,"createdAt":"2019-04-16T16:26:02.000+0000","orderDetails":[{"id":1,"itemId":1,"quantityOrdered":50,"order":{"orderNo":1,"createdAt":"2019-04-16T16:26:02.000+0000","orderDetails":
设置为order
。但是我还有其他方法可以使用吗?
答案 0 :(得分:1)
您可以在Order
中用OrderDetails
注释@JsonIgnore
(或者,如果需要,也可以在Order
中注释)。这样,编组后只有孩子会显示在json中。
或者更好地使用@JsonManagedReference
和@JsonBackReference
处理关系。有关here的更多信息。基本上,您必须使用OrderDetails
注释@JsonManagedReference
的集合,并用Order
注释@JsonBackReference
的集合。