如何在Spring中创建本机查询?

时间:2015-03-03 10:32:17

标签: java database spring postgresql

我有一个spring应用程序应该连接到现有数据库,只根据某些属性查询实体是否存在。

我不想为此创建@Entity类。但我仍然想使用spring EntityManager等。

使用Spring时,为该实体查询select的最佳方法是什么?将em.createNamedQuery(QUERY);String QUERY = "SELECT count(*) from my_table where username =: username AND email := email)";一起使用?

4 个答案:

答案 0 :(得分:1)

来自@ predrag-maric和@ pL4Gu33的答案都是正确的,但如果你在项目中使用JPA(例如,Hibernate),你也可以考虑使用@NamedNativeQuery注释。

更多about named native queries

答案 1 :(得分:0)

使用em.createNativeQuery(QUERY)。此外,您必须使用位置参数(?1)而不是命名参数(:email),因为JPA在本机查询中只支持位置参数。

答案 2 :(得分:0)

答案 3 :(得分:0)

原生查询的简单示例

@PersistenceContext
    EntityManager em;

public String test(Integer id)
{
Query query =   em.createNativeQuery("SELECT name FROM Accounts  where id=?");
query.setParameter(1,id);
return query.getSingleResult();
}