【发布时间】:2014-08-03 13:54:30
【问题描述】:
有一个简单的查询,我只需要运行一个选择。下面是示例 select 语句。
<named-native-query name="Capacity.findByCapacityCount" result-class="com.model.Capacity">
<query>
SELECT MAX_VAL,
FROM PARAMETER
WHERE LOCATION = :facilityCode
AND FUN_C = :functionName
AND PAM_TYP = :dayOfWeek
</query>
</named-native-query>
对于查询结果,我创建了一个简单的实体类,称为容量。
@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Capacity {
@Column(name="PAM_VAL_DCM")
private BigDecimal slotCount;
}
当我的应用程序启动时,我收到“没有为实体指定标识符”的错误。我低估了 Entity 需要定义一个 Id 属性,但在这种情况下,该表没有真正的主键。
我也尝试将类更改为 @Embedable 类型,但出现以下错误“命名查询中的错误”
下面是我使用 Repository 接口创建的接口。
public interface CapacityRepository extends Repository<Capacity,String> {
public Capacity findByCapacityCount(@Param("facilityCode")String facilityCode,
@Param("functionName")String functionName,
@Param("dayOfWeek")String dayOfWeek);
}
那么使用 Spring Data JPA 如何配置一个使用 JPA 注释和 Repository 接口的类来查询没有主键的表?
【问题讨论】:
-
你可能会从这个讨论中找到一些有用的答案stackoverflow.com/questions/3820897/jpa-entity-without-id
标签: java spring jpa spring-data spring-data-jpa