フィールド名を取得すると、org.hibernate.exception.ConstraintViolationException
が発生します。 一意制約をチェックする唯一の確実な方法は、トランザクションコミットです。そのため、例外がスローされる前にチェックしても、だから私はユーザーの魔女フィールドと通信して保存問題を引き起こす必要があります。
詳細メッセージは多かれ少なかれ技術的であり、ユーザーが受け入れられないものです。また、することはできません、私は準備ができ、他の情報も。 IMO フィールド名は、私がオブジェクトから自分自身を取得することができ、問題の価値は十分ある:(データベースドライバに依存します...しかし、フィールド名。ConstraintViolationExceptionを引き起こすフィールド名を抽出する
5
A
答えて
3
あなたはこのようにそれの原因によって例外とメッセージが表示されます:あなたはこの[SQL0407] Null values not allowed in column or variable GROUP00002.
最後の言葉のようになりましたでしょう
try{
t.commit();
}catch (ConstraintViolationException e) {
e.getCause().getMessage();//
}
あなたの列名です、そしてあなたは、あなたのフィールドに一致するように、それを翻訳することができます(静的HashMapを使用して多分)
+1
それは私が考え出した唯一の解決策です。しかし、私にとっては、それは実装に依存しません。私が知っているすべてのデータベースではメッセージが異なります。私はまた、データベースベンダーが将来それを変更しないと信じることはできません:( – Saram
関連する問題
- 1. java.lang.NoClassDefFoundErrorを引き起こすEJB抽象エンティティ?
- 2. ロールバックを引き起こすネストされたフィールド
- 3. ユーザー名/職員コードの問題を引き起こすC#ポストバック
- 4. Rubyでコマンドライン引数からファイル名を抽出する
- 5. 一般的にShapelessでフィールド名を抽出する方法は?
- 6. Splunk:同じ名前の複数のフィールドを抽出する
- 7. ファイル名を抽出する
- 8. 余分なカウントの呼び出しを引き起こすブランクチェック
- 9. Pthreadライブラリは、プログラムが出口でSegフォールトを引き起こす
- 10. OutOfMemoryExceptionを引き起こすDrawImage
- 11. OpenGL glutInit():セグメンテーションフォールトを引き起こすXOpenDisplay()
- 12. OOMを引き起こすスレッドのスタックトレース
- 13. BadTokenExceptionを引き起こすTooltipCompat
- 14. バッシュ:エイリアス問題を引き起こす
- 15. SwingWorkerエラーを引き起こす方法
- 16. はランタイムクラッシュを引き起こします。
- 17. WPF DropShadowEffect Blurrinessを引き起こす
- 18. タイムアウトを引き起こすSQL文
- 19. pthread_mutex_lockがデッドロックを引き起こす
- 20. setTimeoutがポップアップブロックを引き起こす
- 21. NullPointerExceptionを引き起こすフラグメントのレルム
- 22. JSorterエラーを引き起こすTablesorterプラグイン
- 23. パンダグループがキーエラーを引き起こす
- 24. セグメンテーションフォールトを引き起こす "fread"関数
- 25. セグメンテーションフォールトを引き起こす文字列
- 26. AsyncTask NoClassDefFoundErrorを引き起こす
- 27. AttributeErrorを引き起こすラムダ
- 28. EXC_BAD_ACCESSを引き起こすボタン
- 29. SEGVを引き起こすsem_init()
- 30. window.parent.location.reload(true);問題を引き起こす!
あなたはこの投稿(https://forum.hibernate.org/viewtopic.php?p=2414824)を見ましたか? – Hippoom
あなたの問題はhttp://stackoverflow.com/questions/2995042/how-to-extract-actual-entity-and-property-name-that-is-a-duplicate-from-hibernat?rqに似ているようです= 1。もしそれをしたいならば。データベースドライバに基づいています。 –
私は@Hippoomが以前にリンクしたものを見ましたが、私はそれを古くからの知識として取っていました。それは '歯で石を彫る'のように見えます。また、私はHaimが指摘したことを見てきましたが、それは解決策ではありません...そしてまた時代遅れです。私はそれが可能であると信じています、それは私が考える非常に一般的な問題です。 – Saram