Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据JPA:找不到类型的属性(字段名包含查询方法谓词关键字)_Java_Spring Boot_Jpa_Spring Data Jpa - Fatal编程技术网

Java Spring数据JPA:找不到类型的属性(字段名包含查询方法谓词关键字)

Java Spring数据JPA:找不到类型的属性(字段名包含查询方法谓词关键字),java,spring-boot,jpa,spring-data-jpa,Java,Spring Boot,Jpa,Spring Data Jpa,所以我一直在试着让我的大脑思考这个错误。所以我得到了一个非常标准的错误,我明白它告诉我什么,我只是不明白它是如何得到这个错误的。这就是错误 Caused by: org.springframework.data.mapping.PropertyReferenceException: No property stored found for type StorageItemEntity! Did you mean 'storedIn'? at org.springframework.dat

所以我一直在试着让我的大脑思考这个错误。所以我得到了一个非常标准的错误,我明白它告诉我什么,我只是不明白它是如何得到这个错误的。这就是错误

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property stored found for type StorageItemEntity! Did you mean 'storedIn'?
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:90) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:437) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:413) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:366) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) ~[na:na]
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:348) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:331) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.repository.query.parser.Part.<init>(Part.java:81) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.repository.query.parser.PartTree$OrPart.lambda$new$0(PartTree.java:249) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[na:na]
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na]
    at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:250) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.repository.query.parser.PartTree$Predicate.lambda$new$0(PartTree.java:383) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[na:na]
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na]
    at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:384) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:95) ~[spring-data-commons-2.4.8.jar:2.4.8]
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:89) ~[spring-data-jpa-2.4.8.jar:2.4.8]
    ... 62 common frames omitted
我还想指出,StorageType是一个相当标准的枚举。这不是错误,但这是一个很好的提示,以防万一。那么,如果我从未在我的JPA方法中定义所述存储,为什么我会得到一个“没有为StorageItemEntity类型找到的属性‘存储’”


谢谢

我认为这是JPA模型中的列名和变量名问题, 如果您想使用findAllByStoredIn,可以像这样使用@Query注释

存储库类类似于

@Repository
public interface AccountRepository extends JpaRepository<Account, Long> {
      
    @Query("SELECT a FROM Account a WHERE a.userName = :username")
    Account findByUsername(@Param("username") String username);
}
@Getter
@Setter
@RequiredArgsConstructor
@Entity
@Table(name = "account")
public class Account {

    @Id
    @GeneratedValue
    @Column(name="user_id")
    private Long userId;

    @NotNull
    @UniqueUsername(message="Username already exists")
    @Size(min = 6, max = 255, message = "Username have to be grater than 6 characters")
    @Column(name="user_name",unique = true)
    private String userName;

    }

我认为这是JPA模型中的列名和变量名的问题, 如果您想使用findAllByStoredIn,可以像这样使用@Query注释

存储库类类似于

@Repository
public interface AccountRepository extends JpaRepository<Account, Long> {
      
    @Query("SELECT a FROM Account a WHERE a.userName = :username")
    Account findByUsername(@Param("username") String username);
}
@Getter
@Setter
@RequiredArgsConstructor
@Entity
@Table(name = "account")
public class Account {

    @Id
    @GeneratedValue
    @Column(name="user_id")
    private Long userId;

    @NotNull
    @UniqueUsername(message="Username already exists")
    @Size(min = 6, max = 255, message = "Username have to be grater than 6 characters")
    @Column(name="user_name",unique = true)
    private String userName;

    }

中的
是Spring查询派生使用的关键字。因此它需要一个
存储的
属性,该属性是参数中提供的


您需要使用
@Query
注释来获得所需内容。

中的
是Spring查询派生使用的关键字。因此它需要一个
存储的
属性,该属性是参数中提供的


您需要使用
@Query
注释来获取所需内容。

看起来您在
中存储的
列名是
storedIn
我同意,这就是为什么我在JPA存储库
findAllByStoredIn
中命名了我的函数。我想问题是“findByStoredIn”中的“in”是一个@samabcde,这实际上是一个很好的观点。我没有想到这一点。是的,这是绝对的原因看起来你在
中存储的
的列名是
storedIn
我同意这就是为什么我在JPA存储库中命名了我的函数
findallbystored
我想问题是“findByStoredIn”中的“in”是一个@samabcode,这实际上是一个很好的观点。我没有想到这一点。是的,这绝对是原因。这对任何正在寻找的人来说都是一个好答案。这对任何正在寻找的人来说也是一个好答案。是的,这是问题所在,这是我的错。我改变了我的变量名,因为最好完全避免那个关键字,这样我可以使我的变量变得更合理。这是问题所在,这是我的缺点。我更改了变量名,因为最好完全避免使用那个关键字,这样我可以使变量更有意义