在JPA中哪种类型的参数更好用“位置/命名”?

时间:2012-04-25 04:21:25

标签: java hibernate java-ee jpa-2.0

以Hibernate作为提供者。

就性能(或其他)而言,哪种类型的参数更好用?  和为什么?

位移说明

TypedQuery<Client> query = em.createQuery
  ("FROM Client c WHERE c.clientId = ?1",Client.class);
query.setParameter(1, clientId);

命名

TypedQuery<Client> query = em.createQuery
  ("FROM Client c WHERE c.clientId = :clientId",Client.class);
query.setParameter("clientId", clientId);

1 个答案:

答案 0 :(得分:4)

在这种情况下,您不应该真正考虑性能,命名参数有助于提高代码的可读性。即使它慢了几个纳秒左右你应该坚持下去。

TypedQuery<Client> query = em.createQuery
  ("FROM Client c WHERE c.clientId = :clientId",Client.class);
query.setParameter("clientId", clientId);

在上面的行中,很明显您要设置clientId的值。 简单,清晰,清晰,以及您希望如何编码