問題タブ [gilead]
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.
java - Gilead を使用した継承による永続化クラス
GWT プロジェクトでエンティティを永続化するために Gilead を使用していますが、問題が発生しました。エンティティ全体で共通のプロパティ (id など) を保持する親クラスを作成したいと考えています。永続化すると、null ポインター例外が発生します。
親クラス:
子クラス:
ハイバネート マッピング ファイル:
永続化時のスタック トレース:
net.sf.gilead.gwt.PersistentRemoteService.processCall(PersistentRemoteService.java:170) での java.lang.NullPointerException com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86) での javax. servlet.http.HttpServlet.service(HttpServlet.java:754) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315) で org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) で org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:218) org.apache.catalina.core.StandardPipeline で。doInvoke(StandardPipeline.java:648) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) com.sun .enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java) :648) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) で org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) で org.apache.catalina.core. ContainerBase.invoke(ContainerBase.java:1096) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) で org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) で org.apache.catalina.core.StandardPipeline .invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288) at com. sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647) com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579) com.sun.enterprise com.sun.enterprise.web.connector.grizzly の web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)。com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) の DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask( DefaultReadTask.java:214) com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java: 265) com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) でenterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) com.sun.enterprise.web. connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) com.sun.enterprise.web. connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
security - セキュリティの質問:クライアントからサーバーに戻ってくるHibernateコレクションを保護する方法は?
オブジェクト「Child」のコレクションを含む「Parent」という名前の単純なpojoがあります。
hibernate / jpaでは、これは単純に1対多の関連付けであり、子は親を知りません。これらの子オブジェクトは異なるタイプの親を持つことができるため、親を知らない方が簡単です(タグと親を表す子を考えてみてください。タグを持つさまざまなオブジェクトタイプ)。
ここで、親オブジェクトをWebサイトのクライアントビューに送信して、ユーザーが変更できるようにします。
そのために、Hibernate / GWT/Gileadを使用します。
ユーザーがいくつかの変更を加え、保存ボタン(ajax)をクリックすると、親オブジェクトがサーバーに送信されます。親のフィールドが変更されましたが、さらに重要なのは、コレクションで一部の子オブジェクトが追加または削除されたことです。
要約すると、Parentオブジェクトがサーバーに戻ると、コレクションに次のようになります。-idがnullであり、永続化する必要がある新しい「Child」オブジェクト-idがnullではなく、マージする必要がある変更された「Child」オブジェクト- idがnullではないが、元々は親によって所有されていない、ハッキングされた可能性のある「子」オブジェクト-子オブジェクトが欠落している(削除されている):削除する必要があります
親オブジェクト(およびそのコレクション)をどのように保存しますか?データベースから親コレクションをロードして、変更されたコレクションの各オブジェクトを比較し、ハッキングされたアイテムがないかどうかを確認しますか?古いコレクションをクリアして(孤立を削除するため)、新しい子を再度追加しますか(ただし、変更されていない子がいくつかあります)?
ありがとう
PS:私の英語で申し訳ありませんが、あなたが概念を理解していることを願っています;)
java - Hibernate + Javassist+Gileadを使用する場合の「メソッドの重複」エラー
私のWebアプリは、GWT 2.0.2、GXT 2.1.1、Hibernate 3.5-CR1、Javassist 3.11.0、およびGilead 1.3.1(SVNから最新)を使用しています。
私のアプリはGWT1.7.1+Gilead1.2で問題なく動作していました。
GWT 2.0の機能のいくつかを利用したいと思い、その過程で最新のGileadにアップグレードすると思いました。Gilead1.3の新しいgwt.xmlファイルを指摘しました。また、net.sf.gilead.pojo.java5.LightEntityの代わりに新しいnet.sf.gilead.pojo.gwt.LightEntityを使用しています。
LightEntityを拡張するHibernateエンティティ/クラス(つまり、Question、Form)がいくつかあり、Questionエンティティを拡張するエンティティ/クラスがさらにいくつかあります。重要かどうかはわかりませんが、Questionエンティティの継承戦略にInheritanceType.JOINEDを使用しています。
参考までに、Questionクラスは次のとおりです。
私のアプリには、Hibernateセッションファクトリを作成するスタートアップサーブレットがあります。ログに、LightEntityを直接または間接的に拡張するすべてのクラスで「duplicatemethod」エラーが表示されます。これはJavassistの継承の処理に関する問題ではないかと思います。
この問題を解決する方法について何かアイデアはありますか?
java - gwtを介した休止状態にgileadでアノテーションを使用すると、oneToManyアソシエーションでエラーが発生します
私はGileadを使用してGWTプロジェクトでエンティティを永続化し、休止状態のアノテーションも使用しています。私の問題は私のonetomanyアソシエーションにあります。これはFileLocationsのリストへの参照を保持する私のUserクラスです
@OneToMany(cascade = CascadeType.ALL、fetch = FetchType.LAZY)@JoinColumn(name = "USER_ID")プライベートリストfileLocations = new ArrayList();
これは私のファイルロケーションクラスです
@ManyToOne(fetch = FetchType.LAZY)@JoinColumn(name = "USER_ID"、nullable = false)プライベートYFUser uploadUser;
このデータを通常のデスクトップアプリケーションで永続化すると、正常に動作し、テーブルが作成され、データを追加して保存できます。しかし、gwtアプリケーションでデータを永続化しようとすると、エラーが発生します。これは、PersistentRemoteServiceを拡張する私のServiceImplクラスです。
これは私が得ているエラーです。onetoManyRelationshipを削除し、セッションファクトリをビルドすると、エラーがなくなります。これは、休止状態のUtilのbuildsessionfactoryの行にあり、この例外がスローされます。私の休止状態のutilクラスも大丈夫です。これはエラーjava.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z
hibernate - (2番目の)マージ後のエンティティの@OneToManyプロパティnull
GWT プロジェクトで JPA (Hibernate を使用) と Gilead を使用しています。サーバー側にはこのメソッドがあり、同じ「キャンペーン」でこのメソッドを 2 回呼び出しています。2 回目の呼び出しで、4 行目の「campaign.getTextAds()」でヌル ポインター例外がスローされます。
WrapperCampaign エンティティのコードは次のようになります
java - gwtにhibernateとgiladeを使用してエンティティクラス内に保持されているリストに追加する場合のLazyInitializationException
そうです、私は休止状態のギリアドとgwtを使用して、ユーザーとWebサイトのファイルにデータを永続化しています。私のユーザーはファイルの場所のリストを持っています。クラスをデータベースにマッピングするためにアノテーションを使用しています。ユーザークラスに保持されてorg.hibernate.LazyInitializationException
いるリストにファイルの場所を追加しようとすると、が表示されます。
これは、私が使用している外部ファイルアップロードサーブレットクラスからオーバーライドされる以下のメソッドです。ファイルがアップロードされると、このメソッドが呼び出されます。
user1は、他の場所のデータベースからロードされます。例外はで発生しuser1.getFileLocations().add(fileLocation);
ます。全くわからない!どんな助けでも素晴らしいでしょう。エラーのスタックトレースは以下のとおりです
//これはYourFilesユーザーのクラスファイルです
}
}
java - 休止状態の注釈とのインターフェース
インターフェイスに注釈を付ける方法を知りたい
上と下は Hierarchy と呼ばれるインターフェイスを実装する 2 つのクラスです。フォルダー クラスには、フォルダーまたはファイル情報クラスである Hierarchyies のリストがあります。
何らかの方法で注釈または回避策を求めて Web を検索しましたが、単にこれであるインターフェイスをマップできません
フォルダのある階層のリストでマッピング例外が発生しますが、クラスを正しくマッピングする方法がわかりません。
hibernate - GWT 2.0 統合における Gilead での Hibernate Lazy 初期化例外の問題
プロジェクトの UI レイヤーとして GWT 2.0 を使用しています。サーバー側では、Hibernate を使用します。たとえば、これは私が持っている 2 つのドメイン エンティティです。
私の DAO 層では、Spring からHibernateDAOSupportを拡張するUserDAOを使用します。UserDAO には、すべてのユーザーを返すgetAllメソッドがあります。
また、私の DAO サービスでは、userDAO を使用してすべてのユーザーを取得するUserServiceを使用しています。
したがって、UsersService からすべてのユーザーを取得すると、返されたユーザー エンティティは Hibernate セッションから切り離されます。そのため、サービスから取得した Users インスタンスでgetRoles()メソッドを使用したくありません。
私が望むのは、RPC サービスのおかげでユーザーのリストを転送して、GWT を使用してクライアント側でユーザーの他の情報を使用できるようにすることです。
したがって、私の主な問題は、Users.roles の PersistentBag を単純なリストに変換して、RPC 経由でユーザーを転送できるようにすることです。そのために、Gilead Framework が解決策になり得ることを私は見てきました。
Gilead を使用するために、ドメイン エンティティを変更しました。現在、これらはnet.sf.gilead.pojo.gwt.LightEntityを拡張し、JavaBean 仕様を尊重しています。
サーバーでは、GwtRpcSpring フレームワーク ( http://code.google.com/p/gwtrpc-spring/ )のおかげで RPC 経由でサービスを公開しています。このフレームワークには、ギリアドの統合を容易にするアドバイスがあります。
私の applicationContext には、 Gilead の次の構成が含まれています。
メソッド doBasicProfiling のコードは次のとおりです。
この構成でアプリケーションを実行し、すべてのユーザーを取得する RPC サービスを使用すると、Hibernate から Users.roles から遅延初期化例外が発生します。
エンティティに PersistentBag が含まれていたとしても、Gilead ではドメイン エンティティをシリアル化できると思っていたので、がっかりしました。
それはギレアデの目標の一つではないのですか?
だから、誰かがギリアドを(GwtRpcSpringまたは他のソリューションで)構成して、Lazy例外なしでドメインエンティティを転送できるようにする方法を知っているでしょうか?
ご協力いただきありがとうございます。
シルヴァン
java - org.hibernate.NonUniqueObjectExceptionhibernateを介してgileadを使用するGWTアプリケーション内
私はGWT、Hibernate、Gileadを使用する大学のプロジェクトに取り組んでいます。基本的に今のところ、ユーザーは友達を追加したり削除したりできるはずです。また、ユーザーは自分の友達がオンラインかどうかを確認できます。
私の問題は、すでに別の友達に関連している友達を追加すると、次のエラーが発生することです。
これは私のgwtアプリケーションのサービスクラスです:
私の問題は、ユーザーがadd friendクライアント側のボタンを押すと呼び出される、このメソッドのサービスの実装クラスにあります。
シナリオ:
user1はuser2を友達として追加します。これは正常に機能し、user3がuser2を追加すると、例外がスローされます。
私の論理がどこで間違っているのか、何か考えはありますか?
更新:わかりました。コードを変更し、すべての呼び出しを削除して、適切な時点で閉じられたgetCurrentASession()
呼び出しに置き換えました。現在、発生しているエラーは次のとおりです。openSession()