簡體   English   中英

在JPA中使用WHERE查詢實體

[英]Use WHERE in JPA to query the entity

我有這個實體:

@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存儲庫一起構建查詢。 您只需要擴展JpaRepository接口,並遵循命名約定來命名您的方法。

您的方法將如下所示:

public List<Terminal> findByTeminalToken(String TerminalToken);

否則,您將需要使用entityManager.createQuery()方法而不是entityManager.find()因為后者僅與id列一起使用。

如果您正在尋找純Java(我更贊成Philipp解決方案),也許您想看看這個解決方案。 https://www.objectdb.com/java/jpa/query/criteria 很抱歉沒有發布直接的解決方案,但我想為您提供更多信息。

順便說一句,為什么不使用彈簧數據? 容易得多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM