我正在用bootspring学习。
findByDate(int date);
一直工作到我int Date
进入内部课程为止。
现在,我可以保存新条目,但不能通过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!
您应该在存储库中包括嵌入式密钥类的名称,而不是Long。试试这个(未测试):
public interface ExpirationDAO extends JpaRepository<ExpirationDTO, IdKey> {
public List<ExpirationDTO> findByIdDate(int date);
}
之后findBy
Id
是您的EmbeddedId
,Date
是可嵌入类的属性。还有一件事:如果仅使用嵌入式密钥的一部分,那么就不会期望只有一个结果…
问题内容: 我的班级有两个子班级: 和。Child类具有单个PK,并且其上的映射有效。问题是我不知道如何将其映射到具有复合PK的ParentHobby类。 上级: 儿童: 家长爱好: @Entity @Table(name =“ PARENT_HOBBY”)公共类ParentHobby { ParentHobbyPK: 我在编译时遇到的异常是: 当子有复合主键时,如何在父实体中定义@OneToMa
花了3天时间寻找解决方案,最后我来到这里寻求社区智慧。 我有如下的自我引用实体: 我通过手动运行它来确保请求不会返回数据库中的任何内容,但发现如果我将更改为,它将返回数据,因此,块中可能存在错误
问题内容: 据我了解,每当我在JPA / Hibernate实体内的Long字段上使用@Id和@GeneratedValue时,我实际上是在使用代理键,考虑到我的非以下方式,我认为这是定义主键的一种非常不错的方法- 使用复合主键的良好经验,其中: 有不止一种业务-价值-行业组合成为唯一的PK 组合pk值在表详细信息中重复 无法更改该复合PK内的业务价值 我知道hibernate可以支持这两种类型的
我有以下实体: 我第一次使用复合主键,所以我不知道它应该如何工作。问题可能来自定义。第二个参数应该表示ID。但是没有一个主键,而是有两个主键,所以我认为我应该将id类添加到id参数中,但这不起作用。如何使用带有CrudRepository的IdClass键保存具有复合主实体?
我的类有两个子类:和。子类有一个单数PK,其上的映射起作用。问题是我不知道如何将它映射到ParentHobby类上,这个类有一个复合PK。 家长: @entity@table(name=“parent_hobby”)公共类ParentHobby{ ParentHobBypk: 我在编译时遇到的例外情况是: 当子实体具有复合主键时,如何在父实体中定义@OneTomany关系? 相似: @OneTom
我有一个实体,它的复合主键由两个字段组成,其中一个也是复合外键的一部分。 背景:我有实体<代码>人员 、<代码>区域 和<代码>会话 。 与具有多对多关系,使用称为“和实体。 所以,我有,主键为(,)。本身是的外键。 也有一个字段。我希望(,)是的复合外键。 我的PersonSession代码: } 这看起来不错,它在数据库中创建了所有正确的关系。当我尝试插入个性化会话对象时,问题就出现了——ar