当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA Querydsl不适用于投影

郭瀚海
2023-03-14
@RequestMapping(value = "/testdsl", method = RequestMethod.GET)
 Iterable<User> index(
@QuerydslPredicate(root = User.class) Predicate predicate)
{
  return userRepository.findAll(predicate);
} 
public interface UserRepository extends CrudRepository<User, Integer>,
QueryDslPredicateExecutor<User>, QuerydslBinderCustomizer<QUser>
{
  //Collection<OnlyName> findAllProjectedBy();
  //OnlyName findProjectedById(Integer id);

@Override
default public void customize(QuerydslBindings bindings, QUser root)
{

    bindings.bind(String.class)
    .first((StringPath path, String value) ->    path.containsIgnoreCase(value));
 }
 }
public interface IUserProjection  {
 //...all required getters..
 }

共有1个答案

华懿轩
2023-03-14

你可以这样做,但你需要一个具体的课程...

class UserProjection {

  @QueryProjection
  public UserProjection(long id, String name){
     ...
  }

}

然后您的查询如下所示(在QueryDSL 3中):

query.from(QTenant.tenant).list(new QUserProjection(QTenant.tenant.id, QTenant.tenant.name));

编辑:

List<UserProjection> dtos = query.select(new QUserProjection(QTenant.tenant.id, QTenant.tenant.name))
                              .from(tenant).fetch();
 类似资料:
  • 问题内容: 您好,我想按查询排除某些字段。我正在使用nodejs 但在结果集中,我一直在获取密码字段。 问题答案: 投影不适用于新的nodejs mongodb驱动程序…相反,您将不得不在 此处使用游标方法

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 我已经实现了一个函数,我过去常常传递给anko的应用程序递归。 在这个函数里面,我想添加一个边际结束是视图在一个LinearLayout里面,所以我写了下面的代码: 我收到错误,即视图.布局参数是一个可变属性,可以更改。所以我不得不强迫演员: 在这里看堆栈溢出,我看到 Kotlin 不会在可为空的变量中智能强制转换,但 view.layoutParams 不能为空,那么为什么智能强制转换无法推断出

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。

  • 我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications 我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。 我收到了来自两者的200个响应,并从每个API中获取了预期的信息。 然后,我选择从P