ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
エラー全文
net.sf.hibernate.QueryException: Number of positional parameter types (1) does not match number of positional parameters (2) [from User u where u.name = ? and u.deleted = ?]
カッコ内の数字 (1) が型を指定した数、(2) が HQL 中の ? の数。両者が食い違うと発生します。
発生原因
Hibernate の positional parameter(? による位置指定パラメータ)を使う場合、HQL/SQL に書いた ? の数と、Java 側で setXxx() を呼ぶ回数は完全一致が必要です。
| 状況 | HQL の ? 数 | setXxx() 呼出数 | 結果 |
|---|---|---|---|
| 正常 | 2 | 2 | OK |
| setXxx を 1 つ忘れた | 2 | 1 | QueryException |
HQL に ? 増やしたが set 忘れ | 3 | 2 | QueryException |
| set を余分に呼んだ | 1 | 2 | QueryException |
NG 例 / OK 例
NG: ? 2 個に対し setString 1 個
Query q = session.createQuery(
"from User u where u.name = ? and u.deleted = ?");
q.setString(0, "alice");
// ↑ deleted の ? が未バインド → QueryException
List<User> users = q.list();
OK: ? 2 個に対し setXxx 2 個
Query q = session.createQuery(
"from User u where u.name = ? and u.deleted = ?");
q.setString(0, "alice");
q.setBoolean(1, false);
List<User> users = q.list();
推奨: named parameter (:name) に書き換える
positional は数え間違いが起きやすい。名前付きパラメータを使うと安全で可読性も上がります。
// HQL: :name / :deleted を使う
Query q = session.createQuery(
"from User u where u.name = :name and u.deleted = :deleted");
q.setString("name", "alice");
q.setBoolean("deleted", false);
List<User> users = q.list();
デバッグ手順
- 例外メッセージから HQL 全文を確認(スタックトレース末尾)
- HQL の
?の数を数える(エディタの検索カウント機能が便利) - Java 側の
setXxx()呼び出しを数える - 不一致箇所を特定 → 追加 or 削除 or named parameter に書き換え
hibernate.show_sql=trueで実際に発行された SQL を確認
関連エラー
- QueryParameterException: could not locate named parameter — 名前付きパラメータの名前が一致しない
- IllegalArgumentException: Parameter with that position does not exist — JPA でインデックス指定ミス
- SQLGrammarException — SQL 文法エラー(パラメータ数ではなく文法)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- ids for this class must be manually assigned before calling save()
- Number of positional parameter types (1 does not match number of positional parameters (2)
- net.sf.hibernate.MappingException: No persister for ~
- net.sf.hibernate.QueryException: unexpected token: as [~]
- net.sf.hibernate.MappingException: Error reading resource
- IllegalArgumentException occurred while calling setter of
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?