gpt4 book ai didi

java - Spring JPA : PropertyReferenceException: No property findAll found for type

转载 作者:行者123 更新时间:2023-12-01 16:45:40 27 4
gpt4 key购买 nike

我已经就这个问题搜索了几个小时,但找不到完全符合我的情况并有解决方案的。

我有一个现有的 Cassandra 数据库,但打算在不久的将来迁移到 MongoDB。我正在使用 Spring Data JPA 编写一个 Spring Rest API 以使用 Cassandra DB,但希望确保我将来可以轻松切换到 Mongo,而不会带来太多痛苦。

@Entity
@Table("stb")
public class NetworkDevice {
@Id
@PrimaryKeyColumn(name = "deviceid", type = PrimaryKeyType.PARTITIONED)
private String deviceid;
// remaining fields/getters/setters/etc omitted

常见的NetworkDeviceRepository

public interface NetworkDeviceRepository {
NetworkDevice findByDeviceid(String deviceid);
}

Cassandra 存储库

public interface NetworkDeviceCassandraRepository extends NetworkDeviceRepository, CassandraRepository<NetworkDevice, String>{}

Mongo 存储库

public interface NetworkDeviceMongoRepository extends NetworkDeviceRepository, MongoRepository<NetworkDevice, String> {}

当项目启动时,我最终出现以下错误

Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property findAll found for type NetworkDevice!

Spring 似乎变得很困惑,并在我的 NetworkDevice 对象上寻找 CrudRepository 方法名称作为字段,但这对我来说绝对没有意义,我什么也没有。我尝试过(几个小时)会影响这个问题。

任何帮助将不胜感激,谢谢

最佳答案

我发现了这个问题。显然,Cassandra 将 NetworkDeviceMongoRepository 识别为潜在的 Cassandra 存储库,因为它与 NetworkDeviceCassandraRepository 位于同一包中。

将这两个存储库移至不同的包解决了该问题。

之前


> Repository Package
+ NetworkDeviceRepository.java
+ NetworkDeviceMongoRepository.java
+ NetworkDeviceCassandraRepository.java

之后


> Repository Package
+ NetworkDeviceRepository.java
> Mongo Package
+ NetworkDeviceMongoRepository.java
> Cassandra Package
+ NetworkDeviceCassandraRepository.java

关于java - Spring JPA : PropertyReferenceException: No property findAll found for type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61782561/

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