java - 在 JPA 中使用 WHERE 查询实体
问题描述
我有这个实体:
@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
?
解决方案
您最好使用Spring 数据与JPA Repositories一起构建您的查询。您只需要扩展JpaRepository
接口,并遵循命名约定来命名您的方法。
您的方法将如下所示:
public List<Terminal> findByTeminalToken(String TerminalToken);
否则,您将需要使用entityManager.createQuery()
方法而不是entityManager.find()
因为后者仅与id
列一起使用。
推荐阅读
- reactjs - 如何将 MSAL-React 与类组件一起使用?
- arrays - Postgres中数组字段的并发更新
- ffmpeg - ffmpeg xfade 自定义过渡表达式 - 从 vid1、vid2 获取特定 x、y 处的像素值?
- matrix - 计算符号二进制矩阵的对数或逆矩阵的单个元素
- javascript - 在调用 api 然后 setState 后重新渲染平面列表
- reactjs - 在 React Native 中单击图像时如何缩放图像
- python - 是否可以从 Google Cloud 上的 Flask webapp 调用 matlab.engine?
- python - 功能受阻(Python)
- google-analytics - 谷歌全球网站标签:如何覆盖页面引荐来源网址
- scala - scala spark中的行到向量