問題タブ [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.
exception - hyperjaxb の auto-import="false" はどこで設定できますか?
hyperjaxb を使用する場合、どこで auto-import="false" を設定できるか知っていますか? Persistence.createEntityManagerFactory() を呼び出すときにこの例外があります。
この自動インポートで問題が解決すると仮定すると、代わりに手動でインポートする必要があると思います。そのような情報をどこで探しますか?
ありがとうございました。
スレッド「メイン」での例外 javax.persistence.PersistenceException: [PersistenceUnit: com.sun.java.xml.ns.persistence:org.jvnet.hyperjaxb3.ejb.schemas.customizations:com.sun.java.xml.ns.persistence .orm:generated] org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:265) で EntityManagerFactory を構成できません。 createEntityManagerFactory(Persistence.java:52) at PropertiesTest.Test1(PropertiesTest.java:68) at PropertiesTest.main(PropertiesTest.java:121) 原因: org.hibernate.AnnotationException: Use of the same entity name times: Basic at org org.hibernate.cfg.AnnotationBinder の .hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:304)。bindClass(AnnotationBinder.java:567) org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546) org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291) org.hibernate.cfg.Configuration org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226) の .buildMappings(Configuration.java:1148) org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:173) の org.hibernate.ejb. Ejb3Configuration.configure(Ejb3Configuration.java:854) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253) ... さらに 4 件発生by: org.hibernate.DuplicateMappingException: duplicate import: Basic は両方の組織を参照します。jvnet.hyperjaxb3.ejb.schemas.customizations.Basic および com.sun.java.xml.ns.persistence.orm.Basic (auto-import="false" を使用してみてください) .java:164) at org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:297) ... 13 詳細
maven - hyperjaxb3の文字エンコードの設定
Mavenhyperjaxb3-pluginによって生成されたファイルの文字エンコードを設定する方法はありますか?箱から出して、生成されたJavaファイルはISO-8859-1文字セットでエンコードされます(少なくとも私のWindowsマシンでは)。
hibernate - jaxb、hyperjaxb3、jpa2、jts、hibernate-spatial、postgis を使用すると、hyperjaxb が JTS Point ゲッターを @Transient としてマークすると失敗する
私の同僚は、私がコード生成に固執していることを嘆いていますが、私はこの特定のチェーンが実行可能であることを証明することを決意しています. 以下の例は、私のプロジェクトから簡略化したものです (したがって、入力したとおりにテストされていません)。すぐにテストハーネスを作成します。現在、hibernate 4.1.4、hibernate-spatial 1.1.1、hyperjaxb3-ejb-plugin 0.5.6 を使用しています。
型が単純な文字列拡張である Position 要素を使用するスキーマから始めます。
JTS Point フィールドを postgis ジオメトリ列にマップしたいので、bindings.xjb カスタマイズを使用して、jaxb:javaType を使用して xmlType wktPoint を JTS Point javaType にマップします。
bindings.xjb の後半で、annox:annotation を使用して Position 要素のカスタマイズを開始します。
ただし、これにより MyType.java に次の getPosition メソッドが生成されます。
したがって、アプリケーションを起動し、jpa/hibernate がテーブルの初期化を開始すると、POSITION 列が完全にスキップされます (@Transient とマークされているため)。
@Transient が表示されないようにするにはどうすればよいですか? JTS Point タイプをデータベースに直接書き込むことができるようになることを Hyperjaxb に納得させる必要があるようです (それがすべての @Type に関するものであり、位置の読み取りと書き込み時に hibernatespatial に postgis 方言を使用してもらいたいことを示しています)。それを行う方法についてのアイデアはありますか?
java - xsd から永続マッピングを使用して Bean を生成する方法は?
そのような質問をしたいのですが、私は org.jvnet.jaxb2.maven2 で Bean を生成する XML xsd を持っていますが、これらの Bean に java.persistence マッピングを追加する必要があります。
最良の方法はどれですか?
xsd の例を次に示します。
そしてここでそれが生成するもの:
そして、次のようなものを生成する必要があります。
私の質問を拡張するには: 私たちが理解したように、HyperJaxb を使用できますが、誰かが pom ファイルを構成する方法を教えてくれるので、これらの注釈が生成されますか?
hibernate - hyperjaxb を使用したラウンドトリップ テスト中にデータソースを無視する
xsdからJavaクラスを生成するためにmavenでHyperjaxb 3を使用しています。AS で使用されるデータソースを指定するために、プラグイン構成 (pom.xml) の persistenceXml 設定を使用して、カスタムの persistence.xml テンプレートを構成しました。
テンプレートは次のとおりです。
Maven でテストを実行するときにデータソースがないため、ラウンドトリップ テストは失敗します。オプションを無視しjta-data-source
て persistence.properties にフォールバックする方法、または で代替の persistence.xml を生成する方法はありsrc/test/resources
ますか?
jpa - Hyperjaxb/JPA: 値ではなく ID でエンティティを参照する
免責事項 #1: 私は XSD、データベース、および JPA にかなり慣れていないため、私の質問は無意味かもしれません。
XSD を介して指定されたインターフェイスがあります。XML ドキュメントを受け取り、その内容をリレーショナル データベースに保存する必要があります。XSD を変更する能力は限られています。インターフェイス自体は、複雑な関係を持つ多数のエンティティで構成されています。XML ドキュメントで完全なオブジェクト グラフを要求することが望ましくない場所が多数あります。
基本的に、私の XSD は現在次のようになっています。
その XSD を hyperjaxb3 (0.5.6) で実行し、Foo、Bar、および Baz の Java クラスのセットを取得します。私が望むのは、結果の DB スキーマで、Bar.associatedFoo と Baz.associatedFoos がすべて実際の fooId であることを要求することです。ただし、たとえば bar.associatedFoo がタイプ ns1:Foo になるようにスキーマを更新することはできません。それで、問題は次のとおりです。どうすればそれを行うことができますか?
ここでの理由は、XSD の各型は、実際には大規模で複雑な、相互に関連するオブジェクト グラフだからです。Baz の XML 文書に、それぞれの Foo の完全な XML 表現を含める必要はありません。
(明らかに、1 つのオプションは、JPA スキーマの作成後に手動で DB 制約を手動で追加することですが、可能であれば、この情報を XSD に埋め込むことをお勧めします。)
単純なケース (Bar.associatedFoo) では、orm:column アノテーションを使用して、列の定義を直接変更できます。
しかし、(a) この試みを Baz.associatedFoos のケースに拡張する方法がわかりません。(b) 可能であれば壊れにくいものを好みます (列定義文字列は、foo id の長さが変更されるたびに微調整する必要があります。スキーマ名の変更、または Foo のテーブル名の変更; CREATE TABLE foo の前に CREATE TABLE Bar を決定する JPA に依存し、実行時までエラーは生成されません)。
問題があれば、JPA 実装として openJPA 2.1.1 を使用し、DB として Postgres 9.1 を使用しています。XSD では、必要に応じて ID 定義を変更し (complexType にするか、xsd:string の名前付きエイリアスにするか、その他の変更を加えることができます)、好きな xsd:annotations を追加できますが、多くは作成できません。私のタイプへの他の構造的な変更。
前もって感謝します!
jpa - HyperJAXB と ID/IDREF
HyperJAXB3 での JAXB 2.x の ID と IDREF の使用に関する更新はありますか? HyperJAXB と IDREF
IDREF 要素に baseType バインディングを追加し、所有者オブジェクトで正しい型が生成されましたが、非整列化操作がオブジェクトを返すため、結果のクラスはコンパイルされません。
IDREF を使用する理由は、WSDL での循環参照を避けるためです。別の解決策や手動ではない解決策がある場合は、お知らせください。
jpa - エラーの発生原因:org.hibernate.AnnotationException:マップされていないクラスを対象とした@OneToManyまたは@ManyToManyの使用
私はJPA/Hyperjaxbアリーナの初心者です。私の目標は、AuthorテーブルとBookテーブル(postgresデータベース)の間に多対多のマッピングを生成することです。
データベース内-Authorテーブルには列-id、nameがあり、Bookテーブルには列-id、titleがあります。ジャンクション(リンク)テーブルAUTHORS_BOOKSがあり、aid、bid列があります(aidはAuthorテーブルのidフィールドにマップされ、bidはBookテーブルのidフィールドにマップされます)。
クライアントが著者と本を照会/収集できるように、Webサービス(Webサービスの理由に焦点を当てないでください)を公開しています。Webサービスの場合、hyperjaxb表記を使用してpojoを作成しています(これもその通りです)。
これが私のtypes.xsdファイルです:
これがbindings.xjbファイルです:
生成されたAuthor.java(の一部)は次のとおりです。
生成されたBook.java(の一部)は次のとおりです。
何が間違っているのかわかりませんが、warファイルをtomcatにデプロイすると次のエラーが発生します(7.0.34、他の7.0.xバージョンもいくつか試しました)
Webで回答を検索しましたが、解決策がないか、ほとんどのエラーが@ManyToManyタグの@Entityまたは@IdまたはtargetEntityフィールドの欠如によるものでした。私は本当にこれにいくつかのポインタを使うことができました!本当にあなたの時間と助けに感謝します!ありがとう。
java - hyperjaxb3 0.5.6 のカスタマイズ@GeneratedValue で id に注釈を付けません
hj:generated-value tag を使用して、既存のプロパティを生成された識別子としてマークすることにより、hyperjaxb3 で生成されたクラスをカスタマイズしたいと考えています。私の bindings.jxb ファイルでは、Status の ID を識別子としてマークしていますが、生成されたエンティティには @GeneratedValue の注釈が付けられていません。したがって、Status テーブルの id フィールドは pkey としてマークされますが、データベースで自動インクリメントされません。
XML スキーマ定義:
bindings.xjb での Hyperjaxb3 のカスタマイズ:
結果のクラス:
Postgres 9.2 で hibernate を jpa プロバイダーとして使用します。pom.xml:
どんな助けでも大歓迎です。