有一个简单的查询,我只需要对其运行选择。下面是 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>
对于查询结果,我创建了一个名为“Capacity”的简单实体类。
@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Capacity {
@Column(name="PAM_VAL_DCM")
private BigDecimal slotCount;
}
当我的应用程序启动时,出现“没有为实体指定标识符”的错误。我低估了实体需要定义 Id 属性,但在这种情况下,表没有真正的主键。
我还尝试将类更改为 @Embedable 类型,但收到以下错误“命名查询中的错误”
下面是我使用 Repository 接口(interface)创建的接口(interface)。
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 接口(interface)配置一个类来查询没有主键的表?
最佳答案
我认为这行不通,但这不是由于 Spring Data JPA 的限制,而是 JPA 不允许没有主键的实体。请参阅 JPA 规范第 2.4 节。
关于java - 如何使用spring data jpa查询没有主键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105357/