我正在尝试将一个Object数组映射到一个字段。该对象中的所有字段都映射到具有不同名称但结构相似的列。响应结构应为:
"customers": [
{
"firstName": "string",
"lastName": "string",
"products": [
{
"description":"string",
"amount": "string"
},
{
"description":"string",
"amount": "string"
}
]
}
]
在产品领域,我有一个产品列表(描述和数量(。在DB中,列像一样存储
product_des1,product_amt1,product_des2,product_amt2.....product_des30,product_amt30
我需要将这两个字段映射到产品(对象(。如果可能的话,我应该如何使用JPA注释来解决问题?
供参考:客户.class
@Entity
public class Customers implements Serializable {
@Column(name = "firstName")
private String firstName;
@Column(name = "lastName")
private String lastName;
@ElementCollection
List<Products> products;
}
产品.class
@Embeddable
public class Product implements Serializable {
@Column(?)
private String description;
@Column(?)
private String amount;
}
在products字段中,我有一个产品列表(描述和数量(。在DB中,列像一样存储
product_des1、product_amt1、product_des2、product_amd2……product_des30、product_amt 30
所以你的Products
JPA实体应该看起来像这样:
@Embeddable
public class Products implements Serializable {
@Column(name = "product_des1")
private String description1;
@Column(name = "product_amt1")
private String amount1;
@Column(name = "product_des2")
private String description2;
@Column(name = "product_amt2")
private String amount2;
// ... repeat
}
如果您不想在DB和JPA实体之间进行额外的映射(我不建议这样做——我尽量将JPA实体保留为DB行的精确表示,并在必要时在Java中进行映射,而不是在不同技术之间进行映射(。