Java JPA eclipselink持久化实体,它没有主键,只有两个外键
我对javaee非常陌生,并且是自学的,所以请耐心等待我。到目前为止,我的数据库中有3个简单的表: 销售额 产品 销售标识 产品标识Java JPA eclipselink持久化实体,它没有主键,只有两个外键,java,jpa,eclipselink,jpa-2.1,java-ee-8,Java,Jpa,Eclipselink,Jpa 2.1,Java Ee 8,我对javaee非常陌生,并且是自学的,所以请耐心等待我。到目前为止,我的数据库中有3个简单的表: 销售额 产品 销售标识 产品标识 您可以将主id设置为autoincrement而不使用它。您可以共享精确的表定义吗?特别是:您能否验证表Sale\u details上的对(Sale\u id,Product\u id)是否受唯一约束保护?--代码注释:类SaleDetails中的列名与表sale\u details中的列名不匹配@Turing85我发布了表定义,我手动键入了表图表,因此它们不相同
您可以将主id设置为autoincrement而不使用它。您可以共享精确的表定义吗?特别是:您能否验证表
Sale\u details
上的对(Sale\u id,Product\u id)
是否受唯一约束保护?--代码注释:类SaleDetails
中的列名与表sale\u details
中的列名不匹配@Turing85我发布了表定义,我手动键入了表图表,因此它们不相同,我为混淆道歉。Sale_id和Product_id不是唯一的,因为一个sane_id和/或一个产品的多个Sale_id和/或多个Sale_详细信息可能有多个Sale_详细信息。在这种情况下,这对(saleid fk,quantity_Seld)
是唯一的,可以用于JPA@EmbeddedId
或@IdClass
。有关详细信息,请参阅。备注:我对将这对(saleid\u fk,quantity\u salled)
确定为唯一的决定表示怀疑。如果两个单独的项目在同一次销售中以相同的数量销售,会怎么样?当前结构不允许这种情况。@Turing85是否允许?他们的销售id和数量相同,但产品id不同。我尝试了Idclass,得到了以下错误:异常描述:无效的复合主键规范。主键类[com.owl.server.objects.SaleDetails]和实体bean类[class com.owl.server.objects.SaleDetails]中的主键字段或属性的名称必须对应,并且它们的类型必须相同。