問題タブ [datanucleus]
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 - DataNucleus Enhancer 実行後の java.lang.VerifyError
datanucleus エンハンサーを実行した後、奇妙な動作が発生しました。そして、EntityManagerFactory を生成しようとすると、java.lang.VerifyError が発生しました。
メソッドの元の宣言は次のとおりです。
Java がいくつかの合成ブリッジ メソッドをバイトコードに追加することがわかりました。これは実際にエラーと一致します (以下を参照)。しかし、通常、この方法は平和的に共存できます。エラーはエンハンサーとはまったく関係がないのかもしれませんが、関係があると思った他の直感はありません. 理由は何ですか?
そして元の方法:
私は datanucleus(DN) と datanucleus maven plugin(DNM2) を従順な組み合わせで使用しています: (DN,DNM2) 1.1.4 , 2.0.0 および 2.1.1, 2.1.1 。スタックトレースは
java - DataNucleus で Query.execute() が null を返すのはどのような状況ですか
データベースにはまだ何も追加していないため、次のクエリは結果として0を返すはずです。
戻るnull
javadocs も結果ドキュメントも、このメソッドが null を返すことができることについて何も述べていません。私の推測では、私は何か間違ったことをしたということです。
http://db.apache.org/jdo/api20/apidocs/javax/jdo/Query.html#execute%28%29 http://www.datanucleus.org/products/accessplatform_2_2/jdo/jdoql_result.html
java - JDO/DataNucleus で集計関数の setResultClass(...) を呼び出すと、JDOUserException がスローされます
次のコードで
私はこの例外を受け取ります:
javax.jdo.JDOUserException: クエリは単一のフィールドを返しますが、ResultClass (java.lang.Long) として一貫した型ではありません: java.lang.Long です
クエリを削除する.setResult(Long.class)
と機能し、Long が返されます。
setResult()
その方法を理解していないのかもしれません。必要な結果のタイプを示すためにこれを設定する必要があることを理解していました。しかし、これは次のような集計関数には当てはまりませんcount()
か?
java - NetBean、DataNucleusのクラスの強化
こんにちは私はJPAにdatanucleusを使用することに問題があります
IDEとしてnetbeansを使用しており、datanucleusエンハンサーjarをインポートしましたが、ファイルを実行するたびに、クラスを拡張する必要があると表示されます。
ネットを検索しましたが、その方法がまだわかりません。NetBeansでクラスを強化する方法に光を当てるのに十分な人はいますか?
ありがとうXD
java - DataNucleus / NeoDatis - DB 接続が閉じているように見え、Persistable オブジェクトが失われる
DataNucleus を使用すると、下の2 番目の INFO ステートメント(下から 2 番目のエントリ) に問題が見られます。
で永続化した後にオブジェクトを読み取ったり編集したりしようとするとmakePersistent()
、null 値だけが取得されます。INFO ログは、オブジェクトが永続マネージャーによって管理されなくなったことを示しています(呼び出しの直後にこれらの編集を実行していmakePersistent()
ますが)。
私の推測では、私のデータストア (ローカルの埋め込み/ファイル モードの NeoDatis) への接続が閉じられているため、永続化マネージャーはそれを管理しなくなります。しかし、接続を作成するために DataNucleusorg.datanucleus.jdo.JDOPersistenceManagerFactory
クラスを使用しているだけです。
なぜこれが起こるのでしょうか?クローズされた接続メッセージが問題であると考えて、私は正しい軌道に乗っていますか?
FQDN の短縮された不要なログは、簡潔にするために削除されています。
java - Neodatis オブジェクト DB / DataNucleus - インデックスはどのように定義されていますか?
DataNucleus の下で Neodatis オブジェクト データベースを使用してインデックスを作成するためにクエリを実行することがわかっているフィールドを定義するにはどうすればよいですか?
@Index アノテーションは、私の理解では、リレーショナル データベースの ORM にのみ適用されるようです。
orm - Datanucleusスキーマの生成は「継承戦略=」ディレクティブを無視します
私はJDO用のDatanucleusチュートリアルアプリケーション、特にこれを使用しています。
どの「継承戦略」でも、テーブルのレイアウトは同じです。PRODUCT用とBOOK用の2つのテーブルが必要ですが、以下の構成を使用すると、ProductクラスとBookクラスの両方の列を持つPRODUCTテーブルのみが取得されます。
ディレクトリ構造は、build.xmlと同様に、チュートリアルとまったく同じです。Antタスクとコマンドラインの両方を使用してスキーマを生成しようとしました。
私は一連のコマンドを使用します:
スキーマは生成されますが、Datanucleusのドキュメントで、継承戦略「compete-table」を使用する必要があることが示されているため、生成されません。
私のターゲットデータベースは、Ubuntu10.04で実行されているPostgreSQL8.4です。
他の誰かがこの問題に遭遇し、解決策を見つけましたか?
java - データベースがまだ存在しない場合にのみ autoCreateSchema を実行するにはどうすればよいですか?
次の問題があります。プログラムに JDO で DataNucleus を使用しています。私の jdoconfig.xml には次の行が含まれています。
今すぐプログラムを開始し、データベースがまだ存在しない場合、データベースが作成され、すべて正常に動作します。
しかし、プログラムを停止して再起動すると、データベースが既に存在するというエラーが表示されます。
スキーマがまだ存在しない場合にのみスキーマを作成するようにプログラムに指示するにはどうすればよいですか?
datanucleus - Datanucleus fetchgroup 複合キー
datanucleus で複合キーを使用してクラスをマップしようとしています。主キーは 2 つの外部キーで構成されており、これらの外部クラスを fetchgroup に含めることができないようです。
注釈の使用:
作品
作品
しかし
ではない。
どうすればいいですか?
java - jdoで外部キーを使用する代わりにIDを参照しますか?
私はダービーで Datanucleus (jdo) を使用しており、クラス MyClass を持っています。そして、このクラスには、AnotherClass 型の変数があります。この変数を永続化したい。MyClass のインスタンスが永続化されると、変数 AnotherClass も永続化されます。
ここでの問題: 新しい MyClass を永続化し、このインスタンスに同じ AnotherClass インスタンスが変数として含まれている場合、AnotherClass テーブルに再度保存するのではなく、MyClass テーブルの ID で参照するだけです。そうしないと、AnotherClass テーブルに大量の同じインスタンスが永続化されます。
現時点で、私のクラスは次のようになります。
アップデート:
AnotherClass クラスは、MyClass クラスに似ています。
トム・アンダーソンの答えはすでに正しいものだったと思います。新しい AnotherClass インスタンスを作成し、それらを myClass.setAnotherClass(anotherClass) のように MyClass インスタンスに入れます。したがって、anotherClass は同じ値を持つインスタンスであると思いますが、それでも同じインスタンスではないため、(ID を除いて) まったく同じように見えても、データベース内に独自の行を取得します。
したがって、解決策は次のようになると思います。AnotherClass インスタンスが既にデータベースに永続化されているかどうかを確認します。そうであれば、データベースから取得し、そのインスタンスを myClass に設定します。そうでない場合: 新しいインスタンスを作成し、それを myClass に設定して、myClass が永続化されたときに永続化されるようにします。それは私がそれを行うべき方法ですか?
編集: わかりました、新しい問題があります: MyClass (= Character) インスタンスを削除できなくなりました。そうしようとすると、次の例外が発生します (AnotherClass = Faction):
それは私がこれをしたときにちょうど起こりました: character1 を作成し、まったく同じ派閥を作成して character2 を作成し (データベースには 1 回だけあります)、character2 を削除しようとします。理由はありますか?
EDIT2:重要なことを忘れました:
それが私のキャラクタークラスが言っていることです。キャラクターが使用していない場合、派閥を削除したいので、それを持っています。それが問題だと思いますか?どうすれば今それを行うことができますか?