問題タブ [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.
smalltalk - ラムダ関数の as 表現
smalltalk 用の抽象構文ツリー メタモデルを開発していますが、現在、ブロックのモデリングに問題があります。それらは一種のリテラルですが、メソッドのような動作エンティティです。ブロックは一種のラムダ関数なので、誰かがブロックを使って作業するより良い練習をしたかもしれません.
どんなアドバイスにも感謝します。
jpa - @MappedSuperclass を使用した JPA 静的メタモデル (ジェネレーション ギャップ パターンを少し使用)
JPAエンティティでGeneration Gap Patternを実現しようとしました。これが私たちが選択した解決策です(<--は継承です)
EntityGenerated 型は抽象型であり、@MappedSuperclass でマップされます。すべてのフィールドは、生成されたものではなく、具体的なサブクラスへのリレーション ポイントである正しいマッピング アノテーションで生成されます。
Entity は具象型であり、クラスが存在しない場合にのみ生成されます。最初は、@Entity で注釈が付けられたクラス宣言だけがあります。@Table などの他のマッピング属性は、生成された orm.xml にあります。
ここで、(hibernate または openjpa メタモデル ジェネレーターを使用して) jpa 静的メタモデルを生成すると、生成されたクラスは次のようになります。
jpa 基準クエリで User_ を使用する場合は、次のようにします。
しかし、コンパイルされません.... User_.groups は SetAttribute 型であり、get メソッドの jpa パス API は次のとおりです。
(比較すると、単数属性の get メソッドは
ウィッチワークベター)
だから、今、質問は次のとおりです。
直接クエリする方法がないため、メタモデル ジェネレーターが MappedSuperclass のクラスを生成するのはなぜですか? スーパークラスの属性と関係は、各サブクラスで定義する必要があります (X はサブクラス タイプです)。
jpa基準パスAPIが複数属性のgetメソッドを次のように定義しない理由
?
条件クエリをあきらめずに JPA エンティティでジェネレーション ギャップ パターンを実現するにはどうすればよいですか?
ありがとう
java - JPA エンティティ バージョンを取得する一般的な方法
不明な JPA エンティティがあり、そのバージョンを知る必要があります。これを一般的に行う方法が見つかりませんでした。
メタモデルを試しましたが、getVersion() メソッドに何を渡せばよいかわかりません:
で同じパターンが使用されてmetaClass.getId()
いますが、補完的な方法がありますgetIdType()
--getVersionType()
がありません。
第二に、方法はあるがentityManagerFactory.getPersistenceUnitUtil().getIdentifier(entity)
方法はないgetVersion(entity)
。
不明なエンティティからバージョンを取得する方法はありますか?
spring - persistence.xml なしで maven を介して JPA 2.0 メタモデルを生成しますか?
persistence.xml ファイルを使用せずに Maven を介して JPA 2.0 メタモデルを生成する方法はありますか。私はエクリプスリンクを使用しています。
私のJava EEプロジェクトでは、次のようなことを行っていますが、その場合はpersistence.xmlがあるため、うまく機能します。
これで、Spring コンテキストを介して jpa を構成する Spring プロジェクトができました。メタモデルを作成してpersistence.xmlを作成する唯一の方法ですか、それともどうにかして春のコンテキストで構成を維持できますか?
xtext - xText を使用して以前のメタモデルに基づいてモデルを作成しているときに、このエラーを解決するにはどうすればよいですか?
私は xText プロジェクトでこのメタモデルを書きました:
そこに表示されるすべてのメタクラス (背景、キャラクター、敵など) ecore でメタモデルを作成する際に問題はありませんでしたが、特定のモデルを次のように定義しようとすると (Ctrl+Space を使用):
エラーが表示されます: INPUT が RULE_IDを予期していて、Ctrl+Space で書き続けることができません。これが機能しない理由はありますか?ありがとうございました。
c# - カスタムアドホックレポートアーキテクチャ
私が達成しようとしている目標について説明し、ソリューションの設計方法に関するアーキテクチャ上および技術上の提案を歓迎します。
エンドユーザーが限られたデータセットからアドホックレポートを作成できるようにする必要があるアプリに取り組んでいます。これらは私が克服しようとしている世界的な障害です:
レポートのデザインとメタモデル
エンドユーザーは、次の手順で構成されるレポートウィザードを実行できる必要があります。
- レポートルート(苦情などのすべての関係のルートであるエンティティ)を選択します
- ルートエンティティのプロパティにフィルターを作成する
- ルートエンティティ(顧客、ユーザーなど)に関連する他のエンティティのプロパティにフィルターを作成します
- レポートテーブルの列を選択します(選択した関係全体のすべての列の結合から)
- ソート式を選択
- グループ化式を選択
- レポートを保存する
これは商用アプリでは一般的なことであり、良い例はSugarCRMです。
レポートを説明するカスタムメタモデルを定義しようとしています。アプリケーションはNHibernateをORMとして使用し、Criteria APIを使用してレポートクエリを作成することを目的としているため、メタモデルにはクエリに必要なすべてのデータ(射影、結合、フィルター、順序付け、式によるグループ化)が含まれている必要があります。このソリューションに適応できるメタモデルの例はありますか?
技術面では、次の問題があります。
既存のデータモデルの閲覧
データモデルからフィールドと関係を抽出する方法は?リフレクションの使用が最初に頭に浮かびますが、ユーザーはエンティティにカスタムフィールドを追加できるため(エンティティクラスは変更されません)、これは解決策ではありません。残っているのはデータベース自体またはNHibernateマッピングファイルです。NhibernateはこのためのAPIを公開しますか、それとも手動のXMLクエリが唯一の選択肢ですか?
レポートのレンダリング
また、でレポートをレンダリングすることも問題です。レポートは実行時に設計する必要がありますが、私が知る限り、これはrdlcでは不可能です。このアプローチの代替手段は何ですか?rdlcを避け、プレーンHTMLでレンダリングしますか?他にフレームワークはありますか?
これらの機能を実装し、インスピレーションとして使用できるオープンソース(c#、java)プロジェクトの提案も歓迎します。
ruby-on-rails - その場でモンゴイドモデルを定義する
誰かが私のためにこのアプローチを批判していただければ幸いです。
Wufooのように、ユーザーがいくつかの属性を定義し、ユーザーと共有するフォームを生成できるアプリケーションを構築しています。
これが私のアプローチです。
ユーザー has_many ソース & ソースembeds_many source_attributes
ここでは、すべてのユーザー定義フィールドが SourceAttributes に格納されています。フォームを生成する必要があるときは、このようにオンザフライでモデルを生成します。
このアプローチでは、ユーザーが定義するフォームごとに個別のコレクションを作成します。これはうまくいくようですが、いくつか問題があります。
- タイプの安全性
上記で生成したフィールドは、タイプ セーフではないようです。文字列を整数フィールドに保存できます。
タイプは正しく設定されているようです。klass でフィールドを呼び出し、options[:type] 属性をチェックすることで、これを再確認しました。
シンプルなフォームを使用していますが、タイプが自動的に認識されません。次のように明示的に言及する必要があります。
- スケーラビリティ
その場でモデルを生成するという私のアプローチが正しいかどうかはわかりません。これを使っている人を見たことがありません。
別の質問に移動しました。コメントを確認してください。
更新 1:
だから私は間違っていました。私のモデルはタイプ セーフですが、静かに失敗するようです。例外をスローさせる方法はありますか?
PS: mongoid を使うのはこれが初めてです :)
更新 2:
整数検証に関する私の問題は、mongoid ではなく Ruby にある可能性があります。
前回の更新で述べたように、
「ABC」はタイプキャストされていると思います
このように validates_numericality_of を使用して、この問題を克服しようとしました
残念ながら、これは存在もチェックします。この回避策を試しました
しかし、これは数値検証を完全に無視します。allow_blank も試してみましたが、うまくいきませんでした。
java - 文字列としての静的メタモデル、jpa、およびフィールド名
Hibernate Static Metamodel Generator Annotation Processor を使用してエンティティのメタモデルを生成します。したがって、フィールド名を文字列として直接指定する代わりに、このようにフィールド (コンパイル チェック セーフ) を使用することで、基準を適切に作成できます。
古いコードをこの新しいシステムに移行しましたが、一部の関数は文字列を引数として取り、SingularAttribute (メタモデル タイプ) ではありません。
今のところ、これらの関数のシグネチャを変更したくありません。
私の質問: メタモデルを使用してフィールド名にアクセスし、それを文字列に変換できますか?
みたいなことをしたいMyClass_.myField.toString()
のですが、フィールドの名前が返されません。
abstract-syntax-tree - xtext:AST、メタモデル、解析ツリーの関係
誰かが私に解析ツリー、ASTとメタモデルの間の関係を説明できますか?これまでのところ、xtextは文法からEMF Ecoreメタモデルを導出し、antlrを使用してパーサーを生成することを知っています。しかし、それはどのように解析されますか?入力は最初にレクサーを通過し、次にパーサーはパーサールールから解析ツリーを作成しますよね?そして、解析ツリーから、XtextはASTも作成しますか?何のために?そして、この場合のメタモデルにはどのような目的がありますか?私はすべての定義について少し混乱しています。
jpa - where句のjpaメタモデルを使用してサブプロパティにアクセスする方法
私はそれらの間に関係がある2つのエンティティを持っています。
と
jpametamodelとCriteriaAPIを使用してクエリを作成したいと思います。このような:
この文字列でクライアントの「id」プロパティにアクセスする方法がわからないという問題があります。
私は次のようなものを手に入れたい
しかし、jpametamodelを使用します。可能です?:)