設定によりどちらのモセッション。Flush()の送付更新のクエリがない場合ァームウェアのアップデートに発生した

StackOverflow https://stackoverflow.com/questions/34852

  •  09-06-2019
  •  | 
  •  

質問

私は設定によりどちらのモセッション。このセッションを行っそう1作で、このコードの一覧を取得します:

public IList<Customer> GetCustomerByFirstName(string customerFirstName)
{
return _session.CreateCriteria(typeof(Customer))
    .Add(new NHibernate.Expression.EqExpression("FirstName", customerFirstName))
    .List<Customer>();
}

私は呼び出し Session.Flush()HttpRequest, は、取得し HibernateAdoException.設定によりどちらのモは、updateステートメントのdbを与えましたこと、ならびに、外部キーの侵害となります。ばんは flush, の要請が完了しても問題ありません。問題はこのこさんありがとうございます。フラッシュした場合に変更が生じるその他のセッションこのコードは再利用します。しおりを付けることがで設定ことがございました不?


こちらのコードから例外:

[SQL: UPDATE CUSTOMER SET first_name = ?, last_name = ?, strategy_code_1 = ?, strategy_code_2 = ?, strategy_code_3 = ?, dts_import = ?, account_cycle_code = ?, bucket = ?, collector_code = ?, days_delinquent_count = ?, external_status_code = ?, principal_balance_amount = ?, total_min_pay_due = ?, current_balance = ?, amount_delinquent = ?, current_min_pay_due = ?, bucket_1 = ?, bucket_2 = ?, bucket_3 = ?, bucket_4 = ?, bucket_5 = ?, bucket_6 = ?, bucket_7 = ? WHERE customer_account_id = ?]

なパラメータを示すものとして渡されます。

役に立ちましたか?

解決

れによってこの一度に一つのモデルませんでしたマップされた正常な使用nullable種類が正しく).ますように貼り付けてくださいモデルとマッピング?

他のヒント

常に気をつけなければなりNULLable分野におき題設定によりどちらのモ.の場合はNullをDBに、必ず対応です。NET class用Nullableタイプです。その他、全種類のおかいものことが起こると思います。の症状は通常はその設定によりどちらのモへの記録を更新しDBっていない変更があった分野から書の記載事項をよく読んで、データベースです。

以下の手順を説明しなぜこうなる:

  1. 設定によりどちらのモを取得します原体のデータを使用DB ADO.NET
  2. 設定によりどちらのモを構築するエンティティを設定し、その特性
  3. ばDBの分野を含NULLに設定されまdefaul価値の型:
    • 物件の参照型はnullに設定されます
    • 物件の整数、浮動小数点タイプ0に設定され
    • 物件のboolean型に設定されますfalse
    • 物件のDateTimeタイプに設定されましたDateTime.MinValue
    • など。
  4. 現在、取引が確約され、設定によりどちらのモを比較するプロパティの値をフィールド値で読み書DB、分野に含まれる、NULLであってはならないが、本物件を含むnull以外の値 設定によりどちらのモを考慮した財産を汚すだけでなく、強制的に更新のenity.

あなたを傷性能(余往復DB、更新時を取得するエンティティ)のものではなくトラブルシューティングエラーが発生したDateTimeカラム.実際、DateTime物件は初期化されたデフォルト値に設定値が1/1/0001.この値は保存されたDB ADO.NET's SqlClientできないとして有効なSqlDateTime値から最小限のSqlDateTimeは1/1/1753!!!

最も簡単な修正でのクラスは利用Nullable型この場合は、"DateTime?".また、お客様が実施するカスタムタイプマッパーの実施によりIUserTypeそのEqualsメソッドを適切に比較DbNull.値は、何らかのデフォルト値の値タイプです。この例の場合Equalsばtrueを返した場合と比べ1/1/0001とDbNull.値とします。の実施、フル機能IUserTypeいることができず知識の設定によりどちらのモトリビアでの準備も充実しgooglingを選んだ人にすることができてうれしいです。

私もこの問題NH2.0.1しようとした場合に表示する項目を選択逆端の多袋アクセス="noop"(ヒント:これは当てはまりません。

変換===アクセス"分野"+を追加する分野のクラスの固定の問題です。マイクロ-ロット"トラックしていますが。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top