問題タブ [ojb]
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 - OJB / Oracle XE sql デバッグ表示の問題
Java アプリケーションがあり、OJB を ORM テクノロジとして使用しています。開発対象の Oracle XE をローカルにインストールしています。問題は、問題をデバッグする必要があるときです。私は SQL 出力を見るのが好きです。以下は、Oracle XE の「Top SQL」インターフェースから表示できる SQL の例です。
問題は、「:1」ではなく実際の値を表示したいということです。これを構成する方法が見つからないようです。ほとんどの場合、アプリケーションは期待どおりに応答しているため、実際の値が機能していることはわかっています (したがって、私が取り組んでいるバグです)。
ありがとう、ジェイ
java - OJB 参照記述子 1:0 の関係? 自動取得を false に設定する必要がありますか?
Web アプリ内で Spring 2 でApache OJBを使用しているときに問題が発生しています。
2 つの外部キー プロパティを持つ OJB 参照記述子を使用しています。オブジェクト A (親) とオブジェクト B (参照オブジェクト) があります。つまり、オブジェクトAに対して、オブジェクトBが存在する場合と存在しない場合があります。
オブジェクト A に対応するオブジェクト B がない場合、オブジェクト B はインスタンス化されているように見えます (Spring を介して?) とにかく。ただし、オブジェクト B のメンバーにアクセスできません。
オブジェクト B == null かどうかをテストすると、データベースに一致する値がなくても、常に false が返されます。
このオブジェクトは決して null ではないため、次のようにオブジェクトのメンバーをテストできると考えました。
if( objectb.getDocumentNumber == null) { false を返します。}
ただし、jsp で例外が発生します。
objectB を作成するときのデバッガーでのこの例外:
参照記述子は、1:0+ の関係ではなく、1:1+ の関係でなければならないと推測しています。プロパティ「auto-retrieve」を false に設定してから、PersistenceBroker.retrieveAllReferences(Object obj); を使用する必要があるかどうか疑問に思っていました。指示通りの方法。ただし、このメソッドの戻り値は「void」であるため、Spring が何らかの方法で参照クラスを作成し、設定していると推測しています。(私が抱えている同じ問題に私を戻します。)
最初に参照オブジェクトが存在するかどうかをテストする方法が必要です。そうでない場合は、この retrieveAllReferences メソッドを呼び出さないでください。ただし、方法がわかりません。
私はこれについてすべて間違っていますか?参照記述子は 1:0 の関係を許可しませんか? 私の問題の回避策はありますか?
あなたの提案は大歓迎です!
sql - OJBReportQuery参加質問
与えられた3つのテーブル:
OJBを使用して(QueryBySQLに頼らずに)次のSQLクエリを表現しようとしています。
私がこれまでに持っているJavaコードは次のようになります。
しかし、Age_Range_Label列でグループ化できるように、Age_Rangesテーブルと結合する方法がわかりません。
何か洞察はありますか?
spring - Spring Bean の継承と Null ポインタ例外の問題
ビジネス オブジェクトに新しい Bean を追加しようとしています。
これを行うには、最初に、次のように割り当てて PurchaseOrderDocument クラスにメンバーを追加します。
それからもちろん、通常のゲッターとセッターを次のように割り当てます。
さて、それですべてが私のJavaクラスで起こっています。
そこで、DataDictionary ディレクトリにある PurchaseOrderDocument.xml という対応する XML ファイルに、次の Bean 定義を追加しました -
次に、OJB マッピングを作成する必要があるため、ojb.xml ファイルに次の XML コード行を追加しました。
また、対応する TABLE に列 CURR_CM_ACTION_STATUS を作成しました。そのため、名前が一致していることを 2 回、3 回チェックしました。
右 -
質問は次のとおりです。 PurchaseOrderDocument 内に、この Bean に対して上で指定した「Setter」コードを起動するイベントを待機するトリガーがあります。奇妙なことは、私が書いたこのコードが NULL ポインター例外を生成していることです。
問題を次の行に特定しました-
次の行を変更すると:
に
(注はクラスであり、noteText は、継承元のこの Bean にもともと含まれていたメンバー変数ですが、もう Note クラスから継承したくないので、PurchaseOrderDocument クラスに対してローカルにしたいのです。とにかく、そこに Note-noteText がありましたが、null ポインター例外は発生しませんでしたが、トリガーによって「set」メソッドが呼び出された後、データベースには何も書き込まれませんでした。これは偶然にも ORACLE です。)
したがって、これが継承から遠ざかる理由であり、代わりに、この Bean をこのクラスに対してローカルにする必要があります。
私の同僚は、おそらくSpringがFORMでこのBeanを探していると述べましたが、そこにないので、それを突いています...しかし、私には疑問があります。
また、HIDDEN CONTROL を使用していることにも注意してください。parent="AttributeDefinition" テキストを追加すると、コントロール属性が指定されていないというエラーが表示されました。この Bean は USER 入力からではなくコンテンツを取得するため、この HIDDEN CONTROL 属性を指定しました。
多分これは問題の一部ですか??
念のため、スタック トレースを次に示します。
java - IOException: ソケット書き込みエラー
1 つのレポートを編集しているときに、この問題に直面しています (他のすべてのレポートは正常に動作しています)。何が問題なのかわかりません。
org.apache.ojb.broker.PersistenceBrokerSQLException: * sql-statement の実行中に SQLException:
-- いくつかの SQL ステートメント (正しいもの)
- 例外メッセージは [Io 例外: ソフトウェアが原因で接続が中止されました: ソケット書き込みエラー] です。
- ベンダーエラーコード [17002]
---スタックトレースも追加
- ターゲット クラスは「com.dto.CurrentDTO」です
- 対象オブジェクトのPKは [currentId] at org.apache.ojb.broker.util.ExceptionHelper.generateException(ExceptionHelper.java:256) at org.apache.ojb.broker.util.ExceptionHelper.generateException(ExceptionHelper.java:90) ) org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(JdbcAccessImpl.java:594) で org.apache.ojb で org.apache.ojb.broker.util.ExceptionHelper.generateException(ExceptionHelper.java:71) で。 org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(PersistenceBrokerImpl.java:1548) で、org.apache.ojb.broker.core.PersistenceBrokerImpl.doGetObjectByIdentity( PersistenceBrokerImpl.java:1671) (org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity) (PersistenceBrokerImpl.java:1643) (org.apache.ojb.broker.core)。org.apache.ojb.broker.core の DelegatingPersistenceBroker.getObjectByIdentity(DelegatingPersistenceBroker.java:357) .AbsDAO.find(AbsDAO.java:55)
ojb - Kuali ドキュメント ビジネス オブジェクトの拡張
ドキュメントの拡張属性に関する問題に直面しています (ドキュメント テーブルを拡張しようとしています)。元のテーブルの PK (FDOC_NBR) を拡張テーブルに作成し、カスタマイズされた元のテーブルの ojb エントリのforeignKey を介して (「拡張」参照記述子として) 2 つをリンクしました。拡張子の bo と dd を作成し、元のドキュメントの dd をカスタマイズして新しい属性を追加しました。拡張された BO 自体に、2 つの新しい列 + documentNumber の PK 列のメンバー (セッターとゲッターを使用) も追加しました。また、ドキュメントの jsp に新しい属性を追加しました。関連するモジュール定義は、カスタム dd、ojb などのファイルを含むように拡張されています。
確かに、ドキュメントを開くと新しいフィールドが表示されます-ただし、ドキュメントを送信しようとすると(新しいフィールドで何かをしても)、エラーが発生します-
エラーの詳細: OJB 操作。SQL []; ORA-01400: ("KFSTEM"."TEM_TRVL_ARRANGER_DOC_EXT_T"."FDOC_NBR") に NULL を挿入できません。ネストされた例外は java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("KFSTEM"."TEM_TRVL_ARRANGER_DOC_EXT_T"."FDOC_NBR") です
どういうわけか、システムが実際のドキュメント番号ではなく、拡張機能の PK フィールドに NULL の値を挿入しようとしているようです。これをデバッグしようとすると、アクションのルート メソッドで DocumentDaoOjb.save まで (これは私ができる限り下にあります)、実際のドキュメント番号が渡されているドキュメントが表示されるので、問題は純粋にojb はこの番号を拡張テーブルに設定しようとします。
これを明らかにするのに役立つドキュメントの拡張属性を使用した経験がある人はいますか?
java - Apache ObJectRelationalBridge での OutOfMemoryException
OJB 永続化ブローカを使用してオブジェクトのリストをロードしようとすると、OutOfMemoryException が発生します。データベース (sybase) には 20000 を超えるオブジェクトがあります。返されるリストのサイズを 200 に制限しようとしましたが、問題は解決しません。OJB はページングをサポートしていないため、この問題を解決する解決策はありますか?