gpt4 book ai didi

java - 如何在具有复合 PK(Hibernate JPA)的实体中使用 "findBy"

转载 作者:IT老高 更新时间:2023-10-28 13:51:23 26 4
gpt4 key购买 nike

我正在学习 bootspring。

findByDate(int date); 在我将 int Date 移入内部类之前一直有效。

现在我可以保存新条目,但无法按日期检索它们

我需要改变什么?

@Transactional
public interface ExpirationDAO extends JpaRepository<ExpirationDTO, Long> {

public ExpirationDTO findByDate(int date);
}

@Embeddable
public static class IdKey implements Serializable{
@NotNull
int date;
@ManyToOne
ProductDTO product;

public IdKey(){
}
//setters and getters
}
@EmbeddedId
private IdKey id;
@NotNull
int units;

public ExpirationDTO(){
}
//setters and getters
}

抛出此异常:

org.springframework.data.mapping.PropertyReferenceException: No property date found for type ExpirationDTO!

最佳答案

您应该在存储库中包含嵌入式 key 类的名称,而不是 Long。试试这个(未测试):

public interface ExpirationDAO extends JpaRepository<ExpirationDTO, IdKey> {
public List<ExpirationDTO> findByIdDate(int date);
}

findBy 之后的 Id 是你的 EmbeddedId 并且 Date 是可嵌入类的属性。还有一件事:如果你只使用嵌入 key 的一部分,你不能期望只有一个结果......

关于java - 如何在具有复合 PK(Hibernate JPA)的实体中使用 "findBy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com