我正在构建一个Spring rest API,它将返回促销信息(promo_code,promo_description,efective_date,expiration_date),我有像吹的表结构
PROMO_DETAIL
SEQ_NO NUMBER(9), //PK
PROMO_CODE VARCHAR2(9), //PK
PROMO_DESCRIPTION VARCHR2(100),
EFFECTIVE_DATE DATE,
EXPIRATION_DATE DATE
我正在使用具有promo_code,promo_description,effective_date和expiration_date的实体类。我用@Id注释了promo_code。我直接将实体类作为响应返回。
问题是当有2条记录具有相同的促销代码(但具有不同的其他字段的值)。虽然在这种情况下,JPA返回两条记录,但两条记录都具有所有字段的重复值。
此处也提出了同样类型的问题" JPA/Hibernate select query returning duplicate records"
解决方案是在实体中组合密钥。
我不想将seq_no添加到实体类,因为响应中不需要它。 我也不想创建不必要的单独响应模型类。它将创建将实体映射到模型类的额外开销。
这个问题还有其他解决办法吗?