Spring Boot1.3.2.释放
QueryDSL 3.7.2
因此,我的实体是这样设置的:
person.java
@Data
@Entity
@Audited
public class Person {
@Id
private long id;
private String name;
private List<Pet> pets = new ArrayList<>();
}
Pet.java
@Data
@Entity
@Audited
public class Pet {
@Id
private long id;
private int age;
}
public final ListPath<com.test.Pet, com.test.QPet> pets = this.<com.test.Pet, com.test.QPet>createList("pets", com.test.Pet.class, com.test.QPet.class, PathInits.DIRECT2);
10:21:37,523 ERROR [org.springframework.boot.context.web.ErrorPageFilter] (http-/127.0.0.1:8080-1) Forwarding to error page from request [/list] due to exception [null]: java.lang.NullPointerException
at org.springframework.util.ReflectionUtils.getField(ReflectionUtils.java:143) [spring-core-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.data.querydsl.binding.QuerydslPredicateBuilder.reifyPath(QuerydslPredicateBuilder.java:185) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.data.querydsl.binding.QuerydslPredicateBuilder.reifyPath(QuerydslPredicateBuilder.java:188) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.data.querydsl.binding.QuerydslPredicateBuilder.getPath(QuerydslPredicateBuilder.java:167) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.data.querydsl.binding.QuerydslPredicateBuilder.invokeBinding(QuerydslPredicateBuilder.java:136) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.data.querydsl.binding.QuerydslPredicateBuilder.getPredicate(QuerydslPredicateBuilder.java:111) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver.resolveArgument(QuerydslPredicateArgumentResolver.java:106) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver.resolveArgument(QuerydslPredicateArgumentResolver.java:48) [spring-data-commons-1.11.2.RELEASE.jar:]
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:78) [spring-web-4.2.4.RELEASE.jar:4.2.4.RELEASE]
Field field = ReflectionUtils.findField(entityPath.getClass(), path.getSegment());
Object value = ReflectionUtils.getField(field, entityPath);
http://localhost:8080/test-app/list?name=bob
我的预期是,通过使用?pets.age=5
,将构建以下谓词:
QPerson.person.pets.any().age.eq(5)
在Spring的QuerydslPredicate支持下,这是可能的吗?还是应该从查询参数手动构建谓词?
final BooleanBuilder petBuilder = new BooleanBuilder();
petBuilder.and(QPet.firstName.equals("Bob").or(QPet.lastName.equals("Bob")));
如果这些都不可能,那么我将继续手动创建谓词,并将其传递到存储库。
您可以使用QueryDSLBinderCustomizer
来实现您的目的。以下是一些可以帮助您解决问题的示例代码:
public interface PersonRepository extends JpaRepository<Job, Integer>,
QueryDslPredicateExecutor<Person>, QuerydslBinderCustomizer<QJob> {
@Override
public default void customize(final QuerydslBindings bindings, final QPerson person) {
bindings.bind(person.pets.any().name).first((path, value) -> {
return path.eq(value);
});
}
}
当我尝试使用以下URL调用endpoint时: 将引发此异常: 只使用ZonedDateTime对象解析给定的日期是可行的(在Ideone.com上),但是其他的可能是错误的。我在SO上发现了这个问题:使用Spring@RestController处理带有ZonedDateTime参数的HTTP GET 明显的区别是在RequestParam中添加了。现在我在想;我如何让它与QueryDSLPre
我使用Spring Boot和使用Spring Cloud APIGW的微服务堆栈。我使用这里提到的相同代码:https://piotrminkowski.com/2020/02/20/microservices-api-documentation-with-springdoc-openapi/ 当我到达任何一个endpoint时,我都看不到响应正在到来并低于错误。 CORS 策略已阻止从源“ht
我使用的是Spring Security 3.1.3。在我的maven pom中发布,因为我正在阅读的书是2013年的,他们使用了这本书,并有以下代码片段: //管理员控制器 //登录控制器 //web。xml //Spring Security配置:: 应用程序Context-security.xml //登录名。jsp 当我启动我的应用程序时,我会得到带有表单的登录页面。我分别输入admin/
我正在尝试将Spring Security性与LDAP集成。使用spring core版本4.0.5,spring security版本3.2.2和spring ldap版本1.3.2。这是我的安全配置xml
我在springboot项目1.5.10版中工作。释放 我正在为sftp使用Spring集成。以下gradle依赖项对我来说一切都很好 我还将普罗米修斯整合到模块中。 我已经完成了普罗米修斯的所有其他要求。但是我没有得到普罗米修斯的指标。 项目中的所有其他服务都在使用prometheus,但没有使用spring integration sftp,prometheus正在为所有这些服务工作。 我尝试
原因: 它抱怨在我的@Configuration类中找不到一个非空的构造函数,但这些构造函数在Spring的最新版本中是支持的。如果我移除依赖关系,应用程序就会正常启动。如何在不重新配置我的类的情况下修复此问题?等待更新版本的云AWS?