1

从数据库加载数据时出现以下错误

java.lang.IllegalStateException: Required identifier property not found for class com.sudhirt.practice.springdatajdbcpractice.entity.AuthorRef!

    at org.springframework.data.mapping.PersistentEntity.getRequiredIdProperty(PersistentEntity.java:105)
    at org.springframework.data.jdbc.core.EntityRowMapper.readEntityFrom(EntityRowMapper.java:143)
    at org.springframework.data.jdbc.core.EntityRowMapper.readFrom(EntityRowMapper.java:124)
    at org.springframework.data.jdbc.core.EntityRowMapper.lambda$createInstance$0(EntityRowMapper.java:167)

下面是实体类AuthorRef

@Data
@Table("BOOK_AUTHOR")
@NoArgsConstructor
@AllArgsConstructor
public class AuthorRef {
    private Long author;
}

上述错误的原因可能是什么?

源代码可在https://github.com/sudhirtumati/spring-data-jdbc-sample

4

1 回答 1

0

AuthorRefSet聚合根内部引用Book

public class Book {

    @Id
    private Long id;
    private String name;

    // ...

    private Set<AuthorRef> authorRefList;

    // ...
}

如果没有 id 列 Spring Data 无法确定AuthorRef.

只需添加@Id注释就author足够了。

或者,您可以使用 a Listwhich 将添加一个附加book_key列,该列与该book列一起形成一个主键。

于 2019-08-23T06:35:20.043 回答