cost 340 ms
如何使用 JPA Criteria Builder 指定子句原因語句

[英]How can you specify clause cause statements with JPA Criteria Builder

我需要使用 Criteria Builder 將 CockroachDB 的AS OF SYSTEM TIME follower_read_timestamp()子句原因語句指定為我的查詢。 我需要使用 Criteria Builder,因為我的查詢是動態構建的,並且有很多基於用戶輸入的不同可選謂詞 ...

Criteria Builder 多重連接

[英]Criteria Builder Multiple Joins

我有 4 個不同的表,在這些表上應用了聯接,這適用於 SQL 查詢 現在我必須在結果集上實現過濾器,所以我實現了這個 Criteria Builder Stuff。 但這在第一個Join語句中給出了這個錯誤。 ...

添加'...在哪里<column>在(選擇<column>從<div id="text_translate"><p>是否可以使用 Hibernate 5.3+ CriteriaBuilder 添加嵌套的 SELECT IN 語句?</p><p> 我想使用標准生成器創建以下 SQL :</p><pre class="lang-sql prettyprint-override"> select * from ORDERS where sender='ABC' and receiver='DEF' and amount='500' and id IN (SELECT id FROM cc4.best_orders)</pre><p> 標准定義(cc4.best_orders 是一個簡單的 sql 視圖):</p><pre class="lang-java prettyprint-override"> public class BestOrders implements Criterion { private static final String SQL_CRITERIA = ".id IN (SELECT id FROM cc4.best_orders) "; @Override public TypedValue[] getTypedValues(Criteria criteria, CriteriaQuery criteriaQuery) { return new TypedValue[] {}; } @Override public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) { return criteriaQuery.getSQLAlias(criteria) + SQL_CRITERIA; } }</pre><p> 客戶來電:</p><pre class="lang-java prettyprint-override"> //...Old deprecated working way Criteria crit = getSession().createCriteria(Order.class); crit.add(getRestriction("sender.id", sender)); crit.add(getRestriction("receiver.id", receiver)); crit.add(getRestriction("amount.id", dataType)); crit.add(new BestOrders()); crit.setReadOnly(true); Order order = (Order) crit.uniqueResult(); //...New Hibernate 5.3+ way CriteriaBuilder cb = getSession().getCriteriaBuilder(); CriteriaQuery&lt;Order&gt; cr = cb.createQuery(Order.class); Root&lt;Order&gt; root = cr.from(Order.class); cr.select(root).where( cb.and( getEqualPredicate(root, cb, "sender.id", sender), getEqualPredicate(root, cb, "receiver.id", receiver), getEqualPredicate(root, cb, "amount.id", dataType) //new BestOrders() ----&gt; how to add 'SELECT IN' here?; ) ). Query&lt;Order&gt; query = getSession();createQuery(cr). Order order = query;uniqueResult();</pre></div>)' 到 Hibernate 5.3+ CriteriaBuilder<table> </table></column></column>

[英]Adding '...where <column> in (select <column> from <table>)' to Hibernate 5.3+ CriteriaBuilder

是否可以使用 Hibernate 5.3+ CriteriaBuilder 添加嵌套的 SELECT IN 語句? 我想使用標准生成器創建以下 SQL :select * from ORDERS where sender='ABC' and receiver='DEF' and amount='50 ...


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