当使用JPA持久化子对象(即
provider.create(apple1)您的情况)时,一条记录将插入到子表及其所有父表中。因此,
provider.create(apple1)将一条记录插入到Fruit并将一条记录插入到Apple表。
在您的示例中,如果只想保留一个Apple对象,只需调用
provider.create(apple1)就足够了。它将水果引用也保留在苹果对象内。
顺便说一句,我建议Fruit Table的PK为数字类型,并用于
@GeneratedValue标记Fruit
bean的ID字段。这样,您可以让数据库为您生成一个ID,而不再需要在Java代码中显式设置它,以避免由于在Java代码中设置了一个已经存在的ID而导致此“
ID已经存在错误”。



