Java “纲领性的”;“非动态”;在JPA范围内构造HQL查询

Java “纲领性的”;“非动态”;在JPA范围内构造HQL查询,java,jpa,hql,dsl,Java,Jpa,Hql,Dsl,例如: List<Object[]> list = em.createQuery( "SELECT 'Foo', 123 FROM IrcEvent ev", Object[].class).getResultList(); 删除antire表的行(例如)。JPA 2 Criteria API用于以编程方式创建类型安全查询,但不支持删除JPA 2 Criteria API用于以编程方式创建类型安全查询,但它不支持删除是否有任何方法可以以类型安全的方式确定表名?@user1050

例如:

List<Object[]> list = em.createQuery(
  "SELECT 'Foo', 123 FROM IrcEvent ev", Object[].class).getResultList();

删除antire表的行(例如)。

JPA 2 Criteria API用于以编程方式创建类型安全查询,但不支持删除JPA 2 Criteria API用于以编程方式创建类型安全查询,但它不支持删除

是否有任何方法可以以类型安全的方式确定表名?@user1050755是否有特定的原因说明您不将hibernate与spring一起使用?据我所知,您的表名将绑定到实际对象,如果您想截断一个表,您需要做的就是有没有任何方法可以以类型安全的方式确定表名?@user1050755您不使用带spring的hibernate的具体原因是什么?据我所知,表名将绑定到实际对象,如果要截断表,只需HQL不使用表名,而是使用实体类名。您可以使用“选择e.foo,e.bar from”+MyEntity.class+“e”。但是它的可读性较差,而且您应该为您的查询进行单元测试,这将检测到名称问题。在部署时也会检查命名查询。HQL不使用表名,而是使用实体类名称。您可以使用“选择e.foo,e.bar from”+MyEntity.class+“e”。但是它的可读性较差,而且您应该为您的查询进行单元测试,这将检测到名称问题。命名查询也会在部署时进行检查。
entityManager.deleteAll(EntityClass.class);