【发布时间】: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