代码之家  ›  专栏  ›  技术社区  ›  harkesh kumar

方法公共摘要的查询验证失败

  •  0
  • harkesh kumar  · 技术社区  · 7 年前

    我遇到了一些我无法解决的问题

    如果我想做一个查询,这是可能的,但我想尝试这种方式,这显示在下面,如果这是不可能的方式,请让我知道 我正在使用 JPARepository

    public Posts findByIdAndCommonFieldActive(int id, boolean active);
    

    我的后实体类

    @Entity
    @Table(name="post")
    public class Posts implements Serializable {
    
        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        private int id;
        private String title;
        private String description;
        private String content;
    
        @Embedded
        private CommonField commonField;
    
        @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="post")
        private List<Comments> comments = new ArrayList<Comments>();
    
       //getter and setter
    }
    

    我的公共领域课程

    @Embeddable
    public class CommonField {
    
        private boolean isActive;
        private Date createdDate;
        private Date modifiedDate;
        private int createdBy;
        private int modifiedBy;
    
        public CommonField() {
            // TODO Auto-generated constructor stub
        }
    
    
        public CommonField(boolean isActive, Date createdDate, Date modifiedDate, int createdBy, int modifiedBy) {
            super();
            this.isActive = isActive;
            this.createdDate = createdDate;
            this.modifiedDate = modifiedDate;
            this.createdBy = createdBy;
            this.modifiedBy = modifiedBy;
        }
    
        /// Getter and Setter
    
    }
    

    Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract com.harkesh.model.Posts com.harkesh.repo.PostRepo.findByIdAndCommonFieldActive(int,boolean)!
        at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:93) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.jpa.repository.query.SimpleJpaQuery.<init>(SimpleJpaQuery.java:63) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString(JpaQueryFactory.java:76) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromQueryAnnotation(JpaQueryFactory.java:56) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:139) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:206) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:79) ~[spring-data-jpa-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lookupQuery(RepositoryFactorySupport.java:566) ~[spring-data-commons-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(RepositoryFactorySupport.java:559) ~[spring-data-commons-2.1.4.RELEASE.jar:2.1.4.RELEASE]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_192]
        at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[na:1.8.0_192]
        at java.util.Collections$UnmodifiableCollection$1.forEachRemaining(Collections.java:1049) ~[na:1.8.0_192]
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:1.8.0_192]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_192]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_192]
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_192]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_192]
        at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_192]
    

    但不管怎样,请让我知道

    1 回复  |  直到 7 年前
        1
  •  0
  •   Andrei Makarevich    7 年前

    改变

    public Posts findByIdAndCommonFieldActive(int id, boolean active);
    

    到

    public Posts findByIdAndCommonFieldIsActive(int id, boolean isActive);
    

    可能会解决你的问题。