問題タブ [metamodel]

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.

0 投票する
1 に答える
2845 参照

java - JPA2 - OpenJPA の Join で埋め込まれた複合主キーのフィールドで並べ替える方法

Criteria Query API + RAD/Dali が自動生成した、WebSphere v8.0.0.5 の OpenJPA 2.1.2-SNAPSHOT 用の静的正規メタモデルを使用して、次の作業クエリを複製しようとしています。

このクエリのコアを形成する 4 つのエンティティがあります。

  • Center.java
  • 状態.java
  • HoursOfOperation.java
  • HoursOfOperationPK.java

州ごとに多くのセンターがあります。センターごとに多くの HoursOfOperations があります。センター情報、州の省略形、および月曜から日曜を表す曜日番号 1 から 7 で ASC でソートされたセンターの営業時間で構成される結果セットを返す必要があります。

これが私の方法です:

私は立ち往生している行をコメントアウトしました。私が使用した方法と同じように、何らかのメソッドを呼び出して、ある種の HoursOfOperationPK インスタンスをインスタンス化する必要があると思いますJoin<Center, HoursOfOperation> hop。そうすることで、次のようなものを使用できるようになると思いcq.orderBy(cb.asc(hopPk.get(HoursOfOperationPK_.weekdayNumber))); ます。

次に、 を使用しない場合cq.select(center).distinct(true);、7 レコードではなく 49 レコードが返されます。何故ですか?レコード数を 7 に減らす唯一の方法は、select に個別のメソッドを追加することです。DISTINCT が SQL で何をするかは理解していますが、ANSI スタイルの SQL 構文では 7 レコードしか返されません。

OpenJPA ログ出力は、OrderBy が HoursOfOperation.centerId に適用されていることを示しています。

HoursOfOperation および HoursOfOperationPK エンティティの関連部分は次のとおりです。

EDIT @perissf ASC を使用して明示的な順序なしで目的の結果を生成することができました (weekdayNumber が営業時間テーブルの複合主キーの一部であるため、ソートが暗黙的に発生するようです。明示的なソートが必要です)ただし、それほど幸運ではない可能性がある他のクエリに役立つ可能性があるためです):

ただし、次を使用して目的の SQL を生成することもできましたが、唯一の問題は、センターの HoursOfOperation が設定されていないことです (遅延読み込みが原因で、center.Fetch(Center_.hoursOfOperation)重複したレコードが作成されました。解決策はありますか?):

0 投票する
3 に答える
2895 参照

class - UML クラス図のメタモデル

簡略化されたクラス図のメタモデルはどこにありますか? ATL ATLAS Transformation Language プロジェクト用です。エンティティ クラス図を SQL データベースに変換する必要があります。ありがとうございました 。

0 投票する
1 に答える
48 参照

java - クラスのメタの扱い(プロパティへの参照)

複数のクラスのいくつかのプロパティを参照するために、小さなメタモデルをセットアップしようとしています。

Person.name: 以下のクラスを使用して、 と のみを格納Person.surnameしたいMetaManager.configname問題は、との値を保存したくないのですがsurname、フィールドへの参照です。これらのフィールドの参照を保存することで、後で渡される任意のインスタンスのnameandを取得できます。surnamePersonMetaManager.getValues()

このコードはMetamodel APIに似ていますが、これを使用する必要があるかどうかはわかりません (Metamodel は の一部でpersistenceあり、これは とは関係がないためpersistence)。この API ではPerson_.name、オブジェクトを使用してこのように参照を行いEntityTypeます。

問題は、後でインスタンスからこれらのプロパティの値を取得できるように、これらのプロパティへの参照をどのように保存できるかということです。

以下のコードは、私が達成しようとしていることのスケッチを示しています。ご覧のとおり、私の問題は in Person.getValue()and a toString()on this reference です (したがって、 on の参照ssnは を返し"ssn"ます)。

0 投票する
1 に答える
429 参照

uml - UML2 メタモデルにおけるアクターとユースケースの関連付け

ユースケース図におけるアクターとユースケース間の関連付けについて、UML2 メタモデルによって定義されたルールを理解しようとしています。私は、アクターとユースケースが一般化に参加できることを理解しています (それらは一般化の可能性を追加するClassifierから派生しているため)、ユースケースは他のユースケースへの拡張/包含関係を持つことができることを理解しています (それはユースケース図の仕様)。ユースケースのメタモデル図の一部を次に示します。

ここに画像の説明を入力

ご覧のとおり、この図ではアクターとユースケースの間に関連性はまったくありません。これは、アクターとユースケースの共通のスーパータイプ (おそらく BehavioredClassifier または Classifier) のために関連付けが許可されていることを意味するだけです。だから私の質問は:

  • アクターとユースケース間の関連付けを担当するのは、メタモデル階層内のメタ (-クラス) または要素のどれですか?

紛らわしいもう1つのこと:次のような制約があります:

アクターは、ユースケース、コンポーネント、およびクラスへの関連付けのみを持つことができます。さらに、これらの関連付けはバイナリでなければなりません。

しかし、ユースケースに対して定義された同等の制約はありません (バイナリのものを除く)。アソシエーションは常にアクターに属し、ユースケースはアクターに対するアソシエーションを認識していないということですか? 仕様はここで見つけることができます、ありがとう。

0 投票する
1 に答える
2067 参照

uml - UML メタモデル: 派生、派生ユニオン、サブセット化

UML のメタモデルを扱ったことがある場合は、ユニオンとサブセットの概念をおそらく知っているでしょう - 私が理解している限りでは:

  • 「派生ユニオン」としてマークされた要素/クラスの属性と関連付けは、直接使用できません。より具体的なサブクラスでは、派生共用体自体としてマークされていない限り、使用できるそれらのサブセットを見つけることができます。
  • "派生" (共用体なし) の属性と関連付けには、より具体的なクラスのサブセットもありますが、上記とは異なり、より具体的なクラスのサブセットを探すことなく直接使用できます。

私の質問:

  1. これは理にかなっていますか、それとも私はここで間違った方向に進んでいますか?
  2. 一部の属性/関連付けの前にある "/" (スラッシュ) の意味は何ですか?それらは子クラスにサブセットを持っていますか? 例 /general : 分類子[*]
0 投票する
1 に答える
79 参照

xml - デフォルトの XML コンテンツを XSD にインスタンス化するためのバインディング ルール

次の XSD フラグメントを検討してください。

ここで、この XSD を使用して新しいドキュメントを作成するときに、デフォルトでいくつかの要素を特定の値でインスタンス化する XML ベースのアプリケーションについて考えてみます。例えば:

アプリケーションのビジネス ロジックの一部として、この動作をハードコーディングできます。

ただし、アプリケーションが展開されているさまざまな組織に合わせて、これらのデフォルトのユーザーをカスタマイズしたい場合があることを考慮してください。

より洗練された解決策 (ハードコーディングよりも、ある程度の構成可能性を伴う) は、デフォルトのインスタンス化ルールを XSD で記述された特定の要素にバインドすることであり、おそらく私が知らない他のテクノロジまたは標準を使用することです。の。

そのような技術や標準は存在しますか?それとも、私が考慮していないこれを達成するための他の方法がありますか?

0 投票する
1 に答える
5214 参照

maven - 生成されたクラスを使用するコードで Eclipse がコンパイル エラーを報告する

JPA 2.0 メタモデルを使用する Maven プロジェクトがあります。ビルド ライフサイクル中に maven-processor-plugin と build-helper-maven-plugin を使用するように M2e を構成しました。その結果、JPA 2.0 メタモデル クラスが target/generated-sources/annotations に生成され、すべてが正常にコンパイルされました (生成された .war ファイルを確認したところ、生成されたクラスはすべてそこにありました)。ただし、Eclipseは依然としてコンパイル エラーを報告していました。
私の環境: JDK 1.6 update 43 x64、Eclipse Juno SR2、M2e 1.4.0。
私の構成は次のとおり
です<build><plugins>

maven-processor-plugin の場合 ( <build><plugins>):

maven-compiler-plugin の場合 ( <build><plugins>):

m2e の場合 (で<build>):

エンティティ クラス:

メタモデル クラス:

生成されたメタモデル クラスを使用するクラス:

> Maven > Update Project... > Update Project Configuration from pom.xml を既に右クリックしましたが、.classpath ファイルにはまだ generated-sources フォルダーからのエントリが含まれていませんでした。
誰でも私にヒントを与えることができますか?ありがとうございました。

0 投票する
2 に答える
30916 参照

java - JPA Criteria API: オプションの関係の LEFT JOIN

私は基本的に初めてCriteria APIを使用しています。これは、ジェネリック ビルダーのクエリを抽象化することです。

デフォルトでは、この呼び出しにより、エンティティで見つかったすべての関係に対してcriteriaQuery.from( genericClass );SQL が生成されます。INNER JOINこれは問題です。すべてのリレーションシップが null (DBNULLまたは外部キーを使用せず、無効な参照を持つ DB) である場合、これらのエンティティが結果リストに表示されず、事実上間違った検索結果が生成されるためです。

例はここにあります: JPA Criteria query Path.get left join is it possibile

このクラス/メソッドによってインスタンス化されたクエリで発生したいことは、エンティティのすべての関係がここgenericClassで、次のようにマップされることです。optional = true

LEFT (OUTER) JOINの代わりにSQL を生成しますINNER JOIN

質問:

これを行うための標準的なJPQの方法はありますか? もしそうなら、どのように?

PS: 一般に、具体的な型を事前に知る方法はないため、必要なことを達成できる唯一の方法は、ある種のメタモデルを使用して手動で結合を生成することです (これは避けたいと思います)。


EclipseLink 2.3を使用しています