【问题标题】:How to select from Dynamic entity in spring-data-jpa如何从 spring-data-jpa 中的动态实体中进行选择
【发布时间】:2017-05-20 08:25:42
【问题描述】:

在春季数据中,如何做类似的事情

@Query("select code from :entityName where id= :id")
public String getGenicName(@Param("entityName") String entityName, @Param("id") String id)

动态绑定实体名称,现在我使用:

String query = em.createQuery("select code from "+ entityName +" where id= "+ d).getSingleResult();

谢谢你

【问题讨论】:

  • 问题不清楚。
  • 在 spring data 中,如何动态绑定实体的名称,我现在使用 String query = em.createQuery(query.toString("select code from "+ entityName +" where id="+ :d).getSingleResult(); 谢谢
  • 你通常不这样做,因为你想要TypedQueries,然后你必须知道编译时间的类型。也许您尝试解决的问题不应该通过字符串连接来解决(也许您应该使用 CriteriaBuilder),所以我描述了实际问题,我们可以告诉您最好的(希望类型安全的)解决方案是什么。
  • String query = em.createQuery("select code from "+ entityName +" where id= "+ d).getSingleResult();它工作得很好,但我希望我的项目不会导入到其他功能模块的类(低耦合),所以我认为使用类的名称进行 spring 数据查询,因为我们有相同的 spring 上下文

标签: spring spring-boot spring-data spring-data-jpa jpql


【解决方案1】:

这只能通过动态构建您在自己评论中描述的 sql 或 jpql 查询字符串来实现:

em.createQuery("select code from "+ entityName +" where id= "+ d).getSingleResult();

【讨论】:

    猜你喜欢
    • 2023-02-03
    • 2021-08-31
    • 2017-05-06
    • 2020-07-31
    • 2023-03-29
    • 2019-11-03
    • 2014-07-08
    • 2016-08-06
    • 2019-08-21
    相关资源
    最近更新 更多