【发布时间】:2019-01-02 01:49:03
【问题描述】:
我有这个实体:
@Entity
@Table
public class Terminals implements Serializable {
private static final long serialVersionUID = 5288308199642977991L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@Column
private int merchant_id;
@Column
private String terminalToken;
.....
}
我尝试使用此查询:
public Terminals getTerminalToken(String terminalToken) throws Exception {
return entityManager.find(Terminals.class, terminalToken);
}
看起来它只选择了表格键。
如何选择表格列terminalToken?
【问题讨论】:
-
您可以简单地创建一个查询。
entityManager.createQuery( "SELECT t FROM Terminals t WHERE t.terminalToken=:terminalToken").setParameter(...).getResultList(); -
你能告诉我如何使用 Java 代码而不是 HQL 字符串吗?
-
如果你想使用
JpaRepository,你只需要定义一个List<Terminals> findByTerminalToken(String token)方法。 -
EntityManager#find 被定义为只搜索主键,我想知道你为什么期望它做其他事情。
-
@PeterPenzov(和其他人):这不是 HQL。是 JPQL。
标签: java jpa spring-data-jpa jpa-2.1