問題タブ [hyperjaxb]
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 - Hyperjaxb @Entity
@Entity アノテーションで派生クラスの完全修飾名を宣言しないようにするにはどうすればよいですか? 次の xsd があります。
ただし、次の Java ソースが生成されます。
次のように、@Entity から明示的に名前を削除する必要があります。
ありがとう、
java - HyperJAXB で生成された hashCode & equals メソッドは必要ですか?
HyperJAXB を使用していくつかの (かなり多くの) クラスを生成しました。すべてのクラスは Equals と HashCode を実装し、以下の実装スタイルを持っています。このコードは決して実行されないようです..このコードが必要な特別な理由はありますか? 可能であれば、クラスを簡素化しようとしています。
java - java.netからパッチを適用する
このバグに関連するJaxb列挙に問題があります
https://jaxb.dev.java.net/issues/show_bug.cgi?id=708
問題を解決できるパッチが問題に提供されています。このパッチを適用して問題を解決するにはどうすればよいですか?
java - HyperJAXB と IDREF
XSD に complexType A があり、これに complexType B への IDREF がある場合、HyperJAXB は 2 つの生成されたエンティティ間に @OneToOne JPA アノテーションを生成するように、最終的に HyperJAXB をいじることに成功しました。
しかし、今私は別の問題に直面しています: XSD には、複合型 Y または複合型 Z のいずれかに IDREF できる複合型 X があります。 .
生成されたクラスを手動で変更せずにこれを行う方法について、ワイルドなアイデアはありますか? 同時に、これらのエンティティが正しい XML にマーシャリングされていることを確認するには?
特定のインターフェースを実装するクラスを生成できる JAXB プラグインを使用するのはどうですか? それはどこかにつながる可能性がありますか?
web-services - Hyperjaxb と Apache CXF
Apache CXF で Hyperjaxb3 を使用して、WSDL ファーストの Web サービスから永続化アノテーションを生成しようとしています。Hyperjaxb3-ejb-plugin を cxf-codegen-plugin にプラグインしました。
ソースを生成すると、次の有益なスタック トレースが得られます。
私はしばらくこれに頭を悩ませてきました。Hyperjaxb なしでプロジェクトを続行しようとしましたが、メンテナンス コストを負担したくありません。何か案は?例外の解決策、または Hyperjaxb を使用する代替手段は素晴らしいでしょう。
java - HyperJaxb3およびxsd:anyType
次のようなスキーマフラグメントがあります
hyperjaxb3によって生成されたクラスには、次のフラグメントが含まれています。
hibernateは純粋なオブジェクトを永続化するのに苦労することを理解しているため、hyperjaxbは、オブジェクトをXML文字列にマーシャリング解除でき、結果の文字列が永続化されると想定しています。私の場合、これは正しくありませんが、toString()メソッドが何か便利なものを返すことを保証できます。生成されたコードを次のようにしたいと思います。
とにかく私はこの効果または同様のものを得ることができますか?
ありがとう、
マーク。
java - タペストリーでのフォームエンコーディング
タペストリーフォームに問題があります。私のXMLデータベースはエンコーディングに非常に敏感であり、utf-8が必要です。
文字「à」をフォームに入れると、タペストリーは「Ó」を受け取り、コアはエラーを受け取ります:3バイトUTF-8シーケンスの無効なバイト2。
私は、Tomcatのローカルデフォルト構成でのEclipseの問題はありません。
しかし、Tomcatの構成が何であれ、私のアプリケーションは変換自体を実行する必要があると思います。
だから私は試してみます:
- charset = "utf-8" in form => FAIL
- AppModuleのbuildUtf8Filter=>FAIL
すべてのページの文字セットは常にutf-8です。
では、Java文字セットエンコーダーを使用する前に何ができるでしょうか?
助けてくれてありがとう。:)
jpa - hyperjaxb3 xsd:JPAエンティティの文字列の長さ
Hyperjaxb3を使用して、XSDスキーマからJPAエンティティを生成します。説明テキスト(UIのテキスト領域)に使用するxsd:stringタイプがあります。
Hyperjaxb3は、次のように注釈が付けられた属性値を持つクラス(エンティティ)の説明を生成します。
私が持っている質問:
xsd:simpleTypeにxsd:maxLength制限を設定すると、JPA@Column.lengthの値がmaxLengthになることがわかりました。xsd:stringのxsd:extensionであるxsd:simpleContentにxsd:rescrictionを設定するにはどうすればよいですか?拡張するxsd:resctrictionを使用してcomplexTypeを定義する必要がありますか?はいの場合、Hyperjaxbは私の制限により@Column.lengthを生成しますか。私は次のことを試みました:
ただし、JPA列の長さは255のままです。
JAXBカスタマイズ(* .xjbファイル)で特定のタイプの列の長さを設定することもできますか(これが特定のタイプに使用したいormであることをhyperjaxbに通知してください)?または、それは完全に邪魔にならず、xsd:maxLengthを使用する必要があります(上記)Hyperjaxbのカスタマイズのためにグローバルに設定することができました:
ご協力いただきありがとうございます。
hibernate - JSF + Hyperjaxb3 + Hibernate LazyInitializationException(リクエスト間)
Hyperjaxb3によって生成されたトリニダードコンポーネントとJAXB/JPAエンティティBeanを備えたJSFアプリケーションがあります。UIでは、JPAオブジェクトを値として持つTrinidadコンボボックスコンポーネントを使用します。
シナリオは次のとおりです。
- ユーザーはコンボボックスで選択を行います
- ユーザーがサーバーにリクエストを送信し、同じフォームに返されるコントロールをクリックします
- フォームからのデータが送信され、コンボボックスでの選択は、ユーザーが手順1で行ったとおりにする必要があります。equals()メソッドがコンボボックスアイテム(JPAオブジェクト)で呼び出され、次の例外がスローされます。
org.hibernate.LazyInitializationException:ロールのコレクションを遅延初期化できませんでした:package.AnObject.items、org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)atorg.hibernate.collectionでセッションまたはセッションが閉じられませんでした.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
SpringのOpenEntityManagerInViewFilterを使用して、遅延ロードされたオブジェクトを取得します。これは1つのリクエストで機能します。
HyperJAXBで生成されたオブジェクトのレベルでは、メソッドはそのオブジェクトの各属性で呼び出されるメソッドequals()
を呼び出します。その属性がリストである場合、それはPersistenBagによってプロキシされ、それがLazyInitializationExceptionを取得するポイントです。equals(Object object, EqualsBuilder equalsBuilder)
equalsBuilder.append(...)
equals()
メソッド-HyperJaxbによって生成されます:
equals(Object object, EqualsBuilder equalsBuilder)
HyperJaxbによって生成されます:
この問題をどのように解決するかについて何かアイデアはありますか?
JSFコンバーターを使用して、String値(オブジェクトではない)を持つSelectItemを使用しようとしましたが、覚えていれば、Stringがオブジェクトに変換された後にequals()が呼び出されます。
java - hyperjaxb2 が hibernate マッピングで fetch="select" プロパティを生成するように強制します (鬼ごっこ)
私たちのアプリケーションに問題が見つかりました (あまりにも多くのテーブルを結合する選択クエリ)。この問題の解決策は、休止状態のマッピング ファイルでタグを設定fetch="select"
することです。<join>
ただし、このマッピングはhyberjaxb2によって生成されます。fetch 属性を<join>
タグに追加する方法が見つかりません。これを使用して、ターゲット テーブル名 (つまり、MyTable) を変更できます。
しかし、私がそれを
マッピング ファイルには何も追加されません。
<join>
では、 hyperjaxb2 を使用してタグに fetch プロパティを追加するにはどうすればよいですか?
ありがとうございました。