問題タブ [sessionfactory]
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.
nhibernate - WebサービスnHibernateSessionFactoryの問題
C#.NetWebサービスを使用しています。nHibernateを使用してデータベースに接続するdll(C#.Net)を呼び出しています。dllを呼び出すと、dbへのクエリが実行され、親オブジェクト「タスク」が読み込まれます。ただし、dllが子オブジェクト「Task.SubTasks」にアクセスしようとすると、次のエラーがスローされます。
私はnHibernateを初めて使用するので、どのコードが欠落しているかわかりません。
dllを呼び出す前に、Webサービスでファクトリセッションを開始する必要がありますか?もしそうなら、どうすればいいですか?
編集:WebサービスコードとCreateContainer()メソッドコードを追加しました。このコードは、dllを呼び出す直前に呼び出されます
編集:DLLコードとリポジトリコードを追加しています...
DLLコード
タスクのリポジトリ
サブタスクのリポジトリ
spring - SpringおよびHibernateSessionFactoryの問題:ドメインオブジェクトスコープがセッションに制限されている
Spring / Hibernateアプリケーションでセッションファクトリ(DAOオブジェクトに挿入されたシングルトンBean)を使用していて、サービスレイヤーアーキテクチャを使用していますが、次の問題があります。
データベースからドメインオブジェクトを取得するときはいつでも、休止状態のセッションファクトリによって提供される新しいセッションを使用します。同じ行を複数回リクエストする場合、同じドメインオブジェクトのインスタンスが複数存在することになります。(単一のセッションを使用する場合、同じ参照を指す複数のオブジェクトが返されます)したがって、これらのドメインオブジェクトのいずれかに加えられた変更は、この同じ行を表す他のドメインオブジェクトによって考慮されません。
複数のビューを持つSWINGアプリケーションを開発していて、異なる場所(およびクエリ)から同じDB行を取得しているため、同じインスタンスを指すドメインオブジェクトを取得する必要があります。
私の質問は、SessionFactoryを使用してこれを実現する方法ですか?そうでない場合は、アプリケーション全体で単一のセッションを使用することをお勧めしますか?その場合、このセッションをどこでどのように宣言すればよいですか?(sessionFactoryのようにDAOオブジェクトに注入されるBeanである必要がありますか?)
よろしくお願いします
spring - sessionFactory のインジェクションが機能しない
私はSpringが初めてで、sessionFactoryを注入したいのですが、まったく機能しません。Web サーバーの Jetty を起動してから、コンテキストを読み込みます。GWT Web アプリケーションを起動した後、サーバー側で呼び出しを行い、情報を取得しようとしましたが、null ポインターを取得しました。エラーがまったくないので、どこに問題があるのか を知るのが難しくなります。以前に取り組んだプロジェクトで動作しているのを見たので、うまくいくと思います。どんな助けでも感謝します。(私のおそらく悪い英語で申し訳ありません)
context.xml は次のとおりです。
ここにメインがあります:
インジェクションが必要なクラス Test は次のとおりです。
これはアプリケーションのサーバー側です (完全には示されていません)。
...................................
MySQL テーブルは正常に作成されているため、すべてのスキャンが機能しているように見えます。
ありがとう
ボブ
spring - ビューでの Hibernate Open Session: リクエストごとのトランザクション?
TomcatでSpringでHibernateを使用しています。私はこのトピックに関するJBoss wiki ページを頻繁に参照し、再読してきましたが、これは役に立ちました。しかし、それは私にいくつかの疑問を残します。
リクエストごとにトランザクションを開始するという考えは、私を悩ませます。フィルターを特定のコントローラーに制限できると思います-おそらく、トランザクションを必要とするすべてのコントローラーを疑似「tx」パスまたは何かの下に置きます。しかし、トランザクションが必要かどうかわからない場合にトランザクションを使用するのは悪い考えではありませんか? また、何らかのリクエストで読み取りを行っているだけの場合 (キャッシュから取得される可能性が非常に高い読み取り)、トランザクションを使用しないほうがよいのではないでしょうか?
サービス層でトランザクションを処理する方法について言及している投稿を読みましたが、Spring でこれを行いたいと考えています。では、フィルタ コードはどのようなものになるでしょうか。遅延読み込みのために、ビューでセッションを利用できるようにしたいです。
フィルタを呼び出す
sessionFactory.getCurrentSession()
だけでよい場合、再利用のためにセッション ファクトリに「解放」するにはどうすればよいでしょうか。(トランザクションを使用している場合でも、または何かが表示されると予想していましたsession.close()
。) そのセッションを再利用できることをセッション ファクトリに伝えているのは誰ですか?おそらく
beginTransaction()
、リクエストの期間中、特定のデータベース接続を特定のセッションにバインドする呼び出しでしょうか? それ以外の場合、セッションは必要に応じてプールからデータベース接続をプルしますよね?
私のすべての質問にご理解いただきありがとうございます。
(そして、あなたの答えが Spring のドキュメントへのリンクである場合、あなたは私を泣かせるだけです。あなたはそれを望まないでしょう? もし人々が Spring 関連の質問に答えるのをやめたら、私は本当のお金を払います。仕方。)
database - nhibernate の名前付き SQL Server インスタンスの指定
ASP.NET MVC 3 アプリケーションで流暢な nHibernate を使用する最初の試みを行っています。SQL Server Express の複数のインスタンスがあるため、Fluently.Configure() メソッドを使用してセッション ファクトリを作成するときに、サーバーと共に名前付きインスタンスを指定しようとしました。データベースの接続文字列の形式は次のとおりです。
これにより、nHibernate 例外の読み取りが発生します。
初期化文字列の形式が、インデックス 19 から始まる仕様に準拠していません
指定されたインデックスは、インスタンス名の前のスラッシュに対応しています。この接続文字列は Entity Framework 4 で正常に動作します。では、nHibernate で接続したい名前付きインスタンスを指定するにはどうすればよいでしょうか?
java - 休止セッション
Hibernate の学習中に問題が発生しました。UnitTest を作成し、DB にオブジェクトを追加しようとしました。すべての選択は適切に機能していますが、挿入は機能していません。
私もこのようなことを試します
トランザクションが正常に開始されなかったという例外をスローしますが、ユーザーを追加します
ここに例外があります
org.springframework.transaction.TransactionSystemException: Hibernate トランザクションをロールバックできませんでした。ネストされた例外は org.hibernate.TransactionException です: org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:679) でトランザクションが正常に開始されませんでした) org.springframework.test.context.transaction.TransactionalTestExecutionListener$TransactionContext.endTransaction(TransactionalTestExecutionListener.java:512) で org.springframework.test.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:822) で。 context.transaction.
java - Hibernateの例外:スレッドにバインドされたHibernateセッションがありません
セッションを開こうとするとHibernateを使用しようとすると、次の例外が発生します
これが私の設定です
ディスパッチャサーブレット
サービス
そしてserviceImpl
spring - 春 + 休止状態 + DAO + SessionFactory + インジェクト
Spring と Hibernate を使用し、常に sessionFactory オブジェクトの NPE を取得します。
私の設定ファイル:
}
私のDAOImplクラス:
テストケース:
}
app-context.xml
テストコンテキスト.xml
テストが挿入メソッドを呼び出すと、常に currentSession から NPE を取得します。
hibernate - Hibernate : SessionFactory オブジェクトを閉じる必要がある正確な場所
Application に Hibernate 3 バージョンを使用しています。
Hibernate のチュートリアルを行っているときSessionFactory
に、アプリケーションに対して 1 回だけ作成する必要があることがわかりました。そのため、クラス内の静的ブロックと静的メソッドを使用して、示されているようにこれを返すことにしました。
sessionFactory
メモリを転売するために、このオブジェクトをどこで閉じる必要があるのでしょうか。
asp.net-mvc-2 - NHibernateを使用したMVCのデータベース権限
FluentNHibernateを使用してイントラネットMVCWebアプリケーションに取り組んでいます。
誰もが知っているように、必要なものを作成するのISessionFactory
は重いので、一度だけ行う必要があります。したがって、の間にGlobal.asaxファイルに作成し、Application_Start
将来使用するためにアプリケーションにキャッシュします。
問題は、データベースに対するアクセス許可をすでに持っているユーザーにのみアクセスを許可したいということです。
これは、理論的Integrated Security=SSPI
には、(SQLユーザー名とパスワードを提供するのではなく)接続文字列で定義することで解決できます。
ただし、これにより、中にエラーが発生します。これは、DBに接続するためのアクセス許可を持たないアプリケーションをホストしているプロセスによって実行されているFluently.Configure
中に構成が発生するためです。Application_Start
この問題を解決するにはどうすればよいですか?