問題タブ [hql]
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 - HQLで日付/時刻の計算を実行しますか?
HQLクエリ内で日付/時刻の計算を実行する方法を探しています。current_timestamp()
具体的には、関数の結果から(x)時間を加算または減算するにはどうすればよいですか?または、このためにSQLにアクセスして、実行中のデータベースがそれをサポートすることを期待する必要がありますか?
HQLクエリの例:
:timeToSubtractパラメーターを特定の単位として定義できますが、時間よりも大きいものは望ましくなく、秒が最も望ましいでしょう。
明確化:これはクエリの外部で簡単に実行できることを理解しています。ただし、哲学的な理由から、クエリシステムの時刻ではなく、データベースサーバーの時刻を使用することが重要であるとしましょう。実用的な例:最後の(x)時間内に作成されたすべてのエントリの自動タイムスタンプをクエリしています。タイムスタンプはデータベースシステムによって作成されるため、データベースの現在の時刻も使用することが重要です。
hibernate - コレクション内での HQL オーダー
車と車輪 (oneToMany) の 2 つのエンティティがあり、すべての車輪と (これはトリッキーな部分です) を wheel.location で並べた状態で車を取得したいと考えています。以下のコードは、「コレクションを逆参照する不正な試行」というメッセージとともに例外をスローします。
これを行う方法と、これが HQL で可能かどうかについてのアイデアはありますか?
nhibernate - Castle ActiveRecord クエリで限られた列のセットを返すにはどうすればよいですか?
強く型付けされたオブジェクトにマップしますか?
Id、Name、Posted、IsUglyFace、YerMom のエンティティ Blog があるとします。
しかし、私は名前と投稿された列だけが欲しい/必要です。私は次のようなことをしようとしました:
IList blogs = repository.SimpleQuery("select Name, Posted from Blog");
これにより、さらに多くのSQLがダンプされ、エラーが返され、指定されたオブジェクトにマップできませんでした。
nhibernate - Castle の ActiveRecord で複数のエンティティをクエリする、厳密に型指定されたコレクションを取得するにはどうすればよいですか?
4 つの異なるエンティティを結合して特定のデータ セットを取得しようとしています。私がやったことは、これを機能させるためにDTOをセットアップすることです:
今、私は SimpleQuery を次のように使用できると考えました:
リポジトリを返します。SimpleQuery(0, 10, hql);
私のリポジトリメソッドは次のようになります:
今度は、LatestThread クラスの先頭に [ActiveRecord] を配置するよう求められています。私がそうすると、主キーが必要になりますが、それは間違ったルートのようです。
また、DTO ではないクラスに与えられた Import 属性を参照するビットも読みました。すべての例では、結合されているのは 2 つのエンティティだけであり、私が持っている 4 つではありません。4つすべてにインポートを追加する必要がありますか? それとも、読み取り専用の DTO クラスであることを AR に伝えるものはありますか? または、私はこれをすべて間違っていますか?私がやろうとしていることを行うための本当に簡単な方法があります.
ティア!
nhibernate - NHibernate: HQL で定数を返す
NHIbernate の HQL クエリから定数を返す必要があります。
上記のようなものを目指しています。私はこれを試しました:
そして後で:
しかし、最初のケースでは、「未定義のエイリアスまたは不明なマッピング 1」が表示されます。おそらく 1 がエイリアスであると考えているため、これはある程度理にかなっています。
次に、「未定義のエイリアスまたは不明なマッピング:someNumber」を取得します。これは、パラメーターが設定されていない場合でも意味があります。
これを行う方法があると信じなければなりません。
sql-server - SQL Server 2008 で HQL を使用してタグとタグ数をフェッチする
SQL Server 2008 で NHibernate を使用して、特定のエンティティにタグ付けを実装しています。現在の構造は、単純化すると次のようになります。
風変わりなことは何もありません。関連付けには、エンティティにタグを付けたユーザーやその他のものに関するデータも含まれているため、エンティティに同じタグで複数回タグを付けることができます。
今、特定のエンティティのタグのリストを、タグが適用された回数とともに取得しようとしています。HQL では次のようになります。
これにより、次の SQL クエリが生成されます。
これは正しいように見えますが、Tag の Name プロパティが "group by" 句に含まれていないため、SQL Server 2008 では機能しません。これを機能させるには、Tag クラスのすべてのプロパティを含めるために、group by 句を手動で調整する必要があります。
ただし、これは Tag クラスのプロパティに依存するため、クラスが変更されるたびに更新する必要があります。最初の HQL クエリを機能させる他の方法はありますか? おそらく、「グループ化」プロパティを明示的にする HQL 構文でしょうか?
ありがとう