問題タブ [criteria]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - オブジェクト全体ではなくオブジェクトの1つの要素のみを返すために休止状態基準を使用する方法は?
たとえば、ボブのリストではなく、オブジェクトボブのIDのリストのみを取得しようとしています。HQL リクエストで問題ありませんが、基準を使用して可能かどうかはわかりますか?
例 :
java - 例と射影によるHibernateクエリ
簡単に言うと、休止状態は例によるプロジェクションとクエリをサポートしていませんか?私はこの投稿を見つけました:
コードは次のとおりです。
他のポスターが言ったように、生成されたSQLは、y0_ =だけを参照するwhereクラスを持ち続けますか?this_.cityの代わりに。
私はすでにいくつかのアプローチを試し、課題追跡システムを検索しましたが、これについては何も見つかりませんでした。
ProjectionエイリアスとTransformersを使用しようとしましたが、機能しません。
誰かが例による射影とクエリを使用しましたか?
hibernate - Hibernate -- メンバー オブジェクトのフィールドに基づいてオブジェクトをロードする
メンバーオブジェクトのフィールド値に基づいて Hibernate 経由でオブジェクトをロードするにはどうすればよいですか? たとえば、次のクラスが存在し、bar と foo の間に 1 対 1 の関係があるとします。
Foo の ID しか持っていない場合、どのように Hibernate Criteria を使用して Bar をロードできますか?
最初に頭に浮かんだのは、Foo オブジェクトをロードして、それを Criterion として設定して Bar オブジェクトをロードすることでしたが、それは無駄に思えます。基準でこれを行う効果的な方法はありますか、またはこれを処理する方法は HQL ですか?
php - Propel で MySQL 関数を使用する方法
1 か月以上経過したレコードを選択したい。
クエリは次のとおりです。 SELECT * FROM foobar WHERE created_at > DATE_SUB(curdate(), INTERVAL 1 MONTH)
Symfony で Propel を使用して、次のことを行います。
$c = 新しい基準
$c->add(FoobarPeer::CREATED_AT, "DATE_SUB(curdate(), INTERVAL 1 MONTH)", Criteria::GREATER_THAN);
Propel が生成するものは次のとおりです: SELECT * FROM foobar WHERE created_at > 'DATE_SUB(curdate(), INTERVAL 1 MONTH)' - 言い換えると、MySQL 関数を単一引用符で囲み、(無意味な) 文字列にし、何も得られません記録。
私が今やったことは次のとおりです。
$c->add(FoobarPeer::CREATED_AT, "created_at > DATE_SUB(curdate(), INTERVAL 1 MONTH)", Criteria::CUSTOM);
ただし、必要がない限り、カスタムの回避策は使用したくありません。Criteria::CUSTOM を使用する以外のヒントはありますか?
java - Hibernate Criteria を使用した ManyToMany 関係のクエリ
この問題を説明する方法がわからないので、例を挙げて質問するのが最善の方法だと思います。
manyToMany 関係を持つ 2 つのテーブルがあります。
DriversLicence <-> LicenceClass
LicenceClass は、「Car」、「Motorbike」、「Medium Rigid」などです。
Hibernate Criteria を使用して、「Car」と「Motorbike」の両方の LicenceClasses を持つすべてのライセンスを見つけるにはどうすればよいですか?
2008 年 12 月 11 日更新 カスタム ResultTransformer を使用すると、これを簡単に実現できることがわかりました。ただし、問題は、クエリが結果を返した後にのみ結果トランスフォーマーが適用されることであり、実際には SQL の一部にはなりません。したがって、私の質問は「SQL で最初に説明したことを実行できますか? Hibernate Criteria のアナログはありますか?」ということになると思います。
nhibernate - NHibernate 2.0.1 基準: IsNull 制限スロー例外
私はNHibernate 2.0.1.4000
現在のすべての .NET 3.5 SP1 プロジェクトで使用してきましたが、他のクエリ (Query API または Criteria API のいずれかを使用) で問題はありませんでしたが、いくつかの新しいビジネス ロジックによって、この特定のプロジェクトで新しいクエリが必要であることが示されました。特定の null プロパティ (DateTime 型) を持つレコードを単一のテーブルから取得する必要があるアプリケーションのデータベース。
このタイプのクエリに等しくない制限を使用することはできませんが、代わりに IsNull 制限を使用できることがわかっているため、この単純なクエリは「値を null にすることはできません!」を生成します。実行時の例外。私は詳細な DEBUG モードの log4net ログ ファイルを確認しましたが、まだ解決していません。また、テーブルのクラスで、チェックしているプロパティが null 許容プロパティ (DateTime?) であることを確認して、ここでは発生していない、レコードの更新などを強制することによって発生する可能性のある問題...
ここにクエリがありますが、複雑なことは何もありません.MaxResultsの追加制限を使用して/使用せずに問題を解決しようとしましたが、結果を収集する前に例外がスローされます:
これを解決するのに役立つ可能性のあるより多くの情報へのアイデアやポインタはありますか? 代わりに HQL を使用してみましたが、同じ問題があります...特定の null プロパティを持つレコードを返すことに関して、ここで何か不足していますか?
java - 結合と行ベースの制限(ページング)を使用してHibernateで明確な結果を得るにはどうすればよいですか?
他のテーブルへの結合があるHibernateCriteriaクエリで行ベースの制限(例:setFirstResult(5)
および)を使用してページングを実装しようとしています。setMaxResults(10)
当然のことながら、データはランダムに切断されています。その理由はここで説明されています。
解決策として、このページでは、結合の代わりに「2番目のSQL選択」を使用することを提案しています。
createAlias()
既存の条件クエリ(を使用して結合している)を変換して、代わりにネストされた選択を使用するにはどうすればよいですか?
sql - Hibernate 変換 SQL を基準に
SQL クエリに Criteria を使用したいと思います。私は3つのテーブル「家」、「人」、そして家と人の対応のために「liveIn」という3番目のテーブルを持っています。
私のSQLクエリは、「home.country = 'Japan' and person.id = '15' and liveIn.Homeid = home.id and liveIn.PersonId = person.idのhome、person、liveInからhome.idを選択する」です。
誰かを少し助けますか?
nhibernate - 複数の結合が含まれる条件クエリを作成する方法
Criteria API を使用して、次の HQL クエリをコーディングしようとしています。
(3 つの NHibernate オブジェクト: ユーザー (ID、名前、役割、顧客)、役割 (ID、名前)、顧客 (ID、名前))。
次のことを試しましたが、NHibernate が Role に関連付けられた Customer を見つけようとするため、機能しません。
それを行う他の方法(うまくいきます!)はありますか?