问题标签 [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 回答
418 浏览

smalltalk - lambda 函数的 Ast 表示

我正在为 smalltalk 开发抽象语法树元模型,现在我在建模块时遇到了麻烦。它们是一种文字,但另一方面它们是行为实体,如方法。块是一种 lambda 函数,所以也许有人可以更好地使用它们。

我会感谢任何建议。

0 投票
0 回答
2390 浏览

jpa - 带有@MappedSuperclass 的JPA 静态元模型(带有一点代沟模式)

我试图用 JPA 实体实现代沟模式。这是我们选择的解决方案( <-- 是继承)

EntityGenerated 类型是抽象的,并使用@MappedSuperclass 进行映射,所有字段均使用正确的映射注释生成,关系指向具体的子类,而不是 Generated 的。

Entity 是一个具体类型,仅在类不存在时生成,最初只有使用@Entity 注释的类声明。@Table 等其他映射属性在生成的 orm.xml 中。

现在,当我们生成 jpa 静态元模型(使用 hibernate 或 openjpa 元模型生成器)时,生成的类如下所示:

如果我想在 jpa 条件查询中使用 User_,我将执行以下操作:

但它不会编译.... User_.groups 是 SetAttribute 类型,get 方法的 jpa 路径 api 是:

(相比之下,奇异属性的get方法是

女巫工作更好)

所以,现在,问题是:

  • 为什么元模型生成器生成 MappedSuperclass 的类,因为没有办法直接查询它?,应该在每个子类中定义超类的属性和关系(其中 X 是子类类型)

  • 为什么 jpa 标准 Path api 没有将复数属性的 get 方法定义为

    ?

  • 如何在不放弃条件查询的情况下在 JPA 实体上实现代沟模式?

谢谢

0 投票
5 回答
1386 浏览

java - 获取 JPA 实体版本的通用方法

我有一个未知的 JPA 实体,需要知道它的版本。我找不到一般的方法来做到这一点。

我尝试了元模型,但不知道将什么传递给 getVersion() 方法:

中使用了相同的模式metaClass.getId(),但有一种补充方法getIdType()——getVersionType()缺失。

其次,有entityManagerFactory.getPersistenceUnitUtil().getIdentifier(entity)方法,但没有getVersion(entity)方法。

有没有办法从未知实体获取版本?

0 投票
2 回答
1901 浏览

spring - 通过没有persistence.xml的maven生成JPA 2.0元模型?

有没有办法通过 maven 生成 JPA 2.0 元模型而没有 persistence.xml 文件。我正在使用eclipselink。

在我的 Java EE 项目中,我正在做类似以下的事情,因为在这种情况下我有一个 persistence.xml。

现在我有一个 spring 项目,它通过 spring 上下文配置 jpa。是创建元模型以创建 persistence.xml 的唯一方法,还是我可以以某种方式保留 spring 上下文中的配置?

0 投票
1 回答
30 浏览

xtext - 当我使用 xText 基于以前的元模型编写模型时,如何解决此错误?

我在 xText 项目中编写了这个元模型:

您在那里看到的所有元类(背景、角色、敌人等)我在 ecore 中创建元模型没有任何问题,但是当我尝试定义这样的特定模型时(使用 Ctrl+Space):

我收到一个错误:预期 RULE_ID 的 INPUT 不匹配,我无法继续使用 Ctrl+Space 进行写入。任何想法为什么这不起作用?谢谢你。

0 投票
2 回答
1682 浏览

c# - 自定义 Ad-hoc 报告架构

我将描述我正在努力实现的目标,并感谢任何关于如何设计解决方案的架构和技术建议。

我正在开发一个应用程序,该应用程序需要允许最终用户从一组有限的数据中创建临时报告。这些是我试图克服的全球障碍:

报告设计和元模型

最终用户应该能够完成由以下步骤组成的报告向导:

  1. 选择报告根(实体是所有关系的根,例如投诉)
  2. 在根实体的属性上创建过滤器
  3. 在与根实体(例如客户、用户)相关的其他实体的属性上创建过滤器
  4. 选择报告表的列(从跨选定关系的所有列的联合中)
  5. 选择排序表达式
  6. 选择分组表达式
  7. 保存报告

这在商业应用程序中很常见,SugarCRM 就是一个很好的例子。

我想定义一个自定义元模型来描述报告。应用程序使用 NHibernate 作为 ORM,其想法是使用 Criteria API 来构造报告查询,因此元模型应包含查询所需的所有数据(投影、连接、过滤器、排序和按表达式分组)。是否有我可以适应此解决方案的元模型示例?

技术方面存在以下问题:

浏览现有数据模型

如何从数据模型中提取字段和关系?首先想到的是使用反射,但是由于用户可以将自定义字段添加到实体(不会更改实体类),这不是解决方案。剩下的是数据库本身或 NHibernate 映射文件。Nhibernate 是否为此公开 API 或手动 XML 查询是唯一的选择?

报告呈现

此外,呈现报告也是一个问题。报告必须在运行时设计,但据我所知,rdlc 无法做到这一点。这种方法有哪些替代方法?避免 rdlc 并以纯 HTML 呈现?还有其他框架吗?

也欢迎对实现这些功能并可用作灵感的开源(c#、java)项目提出建议。

0 投票
0 回答
379 浏览

ruby-on-rails - 动态定义 Mongoid 模型

如果有人可以为我批评这种方法,我将不胜感激。

我正在构建一个应用程序,用户可以在其中定义多个属性并生成一个表单以与他的用户共享,就像Wufoo一样。

这是我的方法。

用户 has_many sources & Source embeds_many source_attributes

在这里,所有用户定义的字段都存储在 SourceAttributes 中。当我需要生成表单时,我会像这样动态生成模型。

使用这种方法,我将为用户定义的每个表单创建一个单独的集合。这似乎有效,但我有几个问题。

  • 类型安全

我在上面生成的字段似乎不是类型安全的。我能够将字符串保存在整数字段中。

类型似乎已正确设置。我通过调用 klass 上的字段并检查 options[:type] 属性再次检查了这一点。

我使用的是简单的形式,它不能自动识别类型。我必须使用 as 明确提及它:

  • 可扩展性

我不确定我动态生成模型的方法是否正确。我以前从未见过有人用过这个。

转移到一个单独的问题。请检查评论。

更新 1:

所以我错了。我的模型是类型安全的,但它似乎默默地失败了。有没有办法让它抛出异常?

PS:这是我第一次使用 mongoid :)

更新 2:

我对整数验证的问题可能与 Ruby 而不是 mongoid 有关。

正如我之前的更新中提到的,

我相信“ABC”正在被打字

我试图通过像这样使用 validates_numericality_of 来克服这个问题

不幸的是,这也会检查是否存在。我试过这个解决方法

但这完全忽略了数值验证。也尝试了allow_blank,但没有运气。

0 投票
1 回答
1587 浏览

java - 静态元模型、jpa 和字段名称作为字符串

我使用 Hibernate Static Metamodel Generator Annotation Processor 生成实体的元模型。因此,我可以通过使用像这样的字段(编译检查安全)来正确构建标准,而不是直接将字段名称指定为字符串:

我将旧代码迁移到这个新系统,但有些函数将字符串作为参数,而不是 SingularAttribute(元模型类型)。

我现在不想更改这些函数的签名。

我的问题:我可以使用元模型访问字段名称并将其转换为字符串吗?

我想做类似的事情,MyClass_.myField.toString()但它不返回字段的名称。

0 投票
1 回答
1343 浏览

abstract-syntax-tree - xtext:AST、元模型和解析树之间的关系

有人可以解释一下解析树、AST 和元模型之间的关系吗?到目前为止,我知道 xtext 从语法中派生出 EMF Ecore 元模型并使用 antlr 生成解析器。但是它将如何被解析:输入首先通过词法分析器,然后解析器从解析器规则中创建一个解析树,对吗?在解析树之外,Xtext 还创建了一个 AST?为了什么?在这种情况下,元模型有什么目的?我对所有的定义有点困惑。

0 投票
1 回答
653 浏览

jpa - 如何在 where 子句中使用 jpa 元模型访问子属性

我有两个实体,它们之间有关系。

我想使用 jpametamodel 和 Criteria API 进行查询。像这样:

我的问题是我不知道如何访问此字符串中客户端的“id”属性:

我想得到类似的东西

但是使用 jpametamodel。有可能的?:)