当我调用findAll方法时,我在Spring JPA中出错:
org.springframework.data.mapping.PropertyReferenceException:找不到类型models.Apk的属性包。
@Entity
@Table(name="Apks")
public class Apk implements Serializable {
@EmbeddedId private ApkPk id;
@Column private String fileName;
@Column private String description;
@Column(updatable=false)
@Temporal(TemporalType.TIMESTAMP)
private Date creationTime;
@Column
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdateTime;
@ManyToOne
@JoinColumn(name="appId", referencedColumnName="appId", insertable=false, updatable=false)
@NotFound(action=NotFoundAction.IGNORE)
@JsonIgnore
private App app;
//Getters and setters
}
package mypackage.repositories;
public interface ApkRepository extends PagingAndSortingRepository<Apk, ApkPk> {
public List<Apk> findByFileName(String value);
}
的applicationContext.xml
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="myjpa" />
</bean>
我有很多存储库类,但只有这一个出现错误。我发现Spring Data根据实体类检查命名约定,因此我的存储库名称应该是ApkRepository。但事实并非如此。 我能解决这个问题吗? 任何帮助将不胜感激。
编辑: 当我进行单元测试时,它工作正常。我通过服务类调用时发生错误。
repository.findAll(new PageRequest(1, 30));