问题标签 [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 - lambda 函数的 Ast 表示
我正在为 smalltalk 开发抽象语法树元模型,现在我在建模块时遇到了麻烦。它们是一种文字,但另一方面它们是行为实体,如方法。块是一种 lambda 函数,所以也许有人可以更好地使用它们。
我会感谢任何建议。
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 实体上实现代沟模式?
谢谢
java - 获取 JPA 实体版本的通用方法
我有一个未知的 JPA 实体,需要知道它的版本。我找不到一般的方法来做到这一点。
我尝试了元模型,但不知道将什么传递给 getVersion() 方法:
中使用了相同的模式metaClass.getId()
,但有一种补充方法getIdType()
——getVersionType()
缺失。
其次,有entityManagerFactory.getPersistenceUnitUtil().getIdentifier(entity)
方法,但没有getVersion(entity)
方法。
有没有办法从未知实体获取版本?
spring - 通过没有persistence.xml的maven生成JPA 2.0元模型?
有没有办法通过 maven 生成 JPA 2.0 元模型而没有 persistence.xml 文件。我正在使用eclipselink。
在我的 Java EE 项目中,我正在做类似以下的事情,因为在这种情况下我有一个 persistence.xml。
现在我有一个 spring 项目,它通过 spring 上下文配置 jpa。是创建元模型以创建 persistence.xml 的唯一方法,还是我可以以某种方式保留 spring 上下文中的配置?
xtext - 当我使用 xText 基于以前的元模型编写模型时,如何解决此错误?
我在 xText 项目中编写了这个元模型:
您在那里看到的所有元类(背景、角色、敌人等)我在 ecore 中创建元模型没有任何问题,但是当我尝试定义这样的特定模型时(使用 Ctrl+Space):
我收到一个错误:预期 RULE_ID 的 INPUT 不匹配,我无法继续使用 Ctrl+Space 进行写入。任何想法为什么这不起作用?谢谢你。
c# - 自定义 Ad-hoc 报告架构
我将描述我正在努力实现的目标,并感谢任何关于如何设计解决方案的架构和技术建议。
我正在开发一个应用程序,该应用程序需要允许最终用户从一组有限的数据中创建临时报告。这些是我试图克服的全球障碍:
报告设计和元模型
最终用户应该能够完成由以下步骤组成的报告向导:
- 选择报告根(实体是所有关系的根,例如投诉)
- 在根实体的属性上创建过滤器
- 在与根实体(例如客户、用户)相关的其他实体的属性上创建过滤器
- 选择报告表的列(从跨选定关系的所有列的联合中)
- 选择排序表达式
- 选择分组表达式
- 保存报告
这在商业应用程序中很常见,SugarCRM 就是一个很好的例子。
我想定义一个自定义元模型来描述报告。应用程序使用 NHibernate 作为 ORM,其想法是使用 Criteria API 来构造报告查询,因此元模型应包含查询所需的所有数据(投影、连接、过滤器、排序和按表达式分组)。是否有我可以适应此解决方案的元模型示例?
技术方面存在以下问题:
浏览现有数据模型
如何从数据模型中提取字段和关系?首先想到的是使用反射,但是由于用户可以将自定义字段添加到实体(不会更改实体类),这不是解决方案。剩下的是数据库本身或 NHibernate 映射文件。Nhibernate 是否为此公开 API 或手动 XML 查询是唯一的选择?
报告呈现
此外,呈现报告也是一个问题。报告必须在运行时设计,但据我所知,rdlc 无法做到这一点。这种方法有哪些替代方法?避免 rdlc 并以纯 HTML 呈现?还有其他框架吗?
也欢迎对实现这些功能并可用作灵感的开源(c#、java)项目提出建议。
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,但没有运气。
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 元模型访问子属性
我有两个实体,它们之间有关系。
和
我想使用 jpametamodel 和 Criteria API 进行查询。像这样:
我的问题是我不知道如何访问此字符串中客户端的“id”属性:
我想得到类似的东西
但是使用 jpametamodel。有可能的?:)