- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须处理声明如下的 View (Oracle 11g):
create view V_SOME_VIEW as
select X, Y
from SOME_TABLE
及其实体:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
@Table("V_SOME_VIEW")
@NamedQueries({
@NamedQuery(name = "VSomeView.findAll", query = "SELECT v FROM VSomeView v")})
public class VSomeView implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Lob
@Column(name = "X")
private Object x;
@Lob
@Column(name = "Y")
private Object y;
...
}
使用 Gradle Metamodel Plugin 生成静态元模型后我有以下元模型没有属性 y:
import javax.annotation.Generated;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(VSomeView.class)
public abstract class VSomeView_ {
public static volatile SingularAttribute<VSomeView, Object> x;
public static final String X = "x";
}
在应用程序启动时,我遇到如下错误:
ERROR o.h.ejb.metamodel.MetadataContext: HHH015011: Unable to locate static metamodel field: ...VSomeView_#y
如果我将列类型从 java.lang.Object
更改为 java.lang.String
,则字段 y 会正确生成。谁能给我解释一下,这是什么原因?
最佳答案
来自 JPA 规范
6.2.1.1 Canonical Metamodel
For every persistent non-collection-valued attribute
y
declared by classX
, where the type ofy
isY
, the metamodel class must contain a declaration as follows:
public static volatile SingularAttribute<X, Y> y;
所以,从这个角度来看,您期望看到 y
元模型类中的属性看起来得到证实。
但是深入了解注释处理器的 Hibernate 实现 JPAMetaModelEntityProcessor ,我们可以发现,如果类 MetaAttributeGenerationVisitor 的方法 isBasicAttribute ,则元模型类中将出现一个非集合值属性。返回true。
以下情况是可能的:
持久属性由以下注释之一进行注释: @Basic , @OneToOne , @ManyToOne , @EmbeddedId , @Id .
持久属性使用注释 @Type 进行注释。这意味着它是一个 hibernate 自定义类型。
持久属性是 an enum .
持久属性是 a primitive type
持久属性是 a hibernate basic type
持久属性是一个实现 Serializable 的类界面。
持久属性是一个用@Embeddable注释的类。注释。
由于 @Id
,您的第一个持久属性满足 n.1 条件注释,但第二个不满足 n.1-7 条件,这就是生成的元模型中不存在它的原因。
另请参阅this .
关于java - 为什么我收到 HHH015011 : Unable to locate static metamodel field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58912255/
我尝试使用以下代码访问 MetaModel 实体属性/变量: CriteriaQuery criteria = builder.createQuery(User.class); Me
我需要用 Java 查询电子表格文件。我正在使用 Apache MetaModel 。 我使用maven导入它 org.apache.metamodel MetaModel-exce
我知道元模型是实体类的抽象,但它到底是什么以及我如何从中获利? 最佳答案 它们用于为 JPA 编写条件查询。 此外,它还用于编写规范(如果您使用的是 spring 数据) Specification
我编写了一段代码来通过 apache 元模型创建一些表: dataContext.executeUpdate(new UpdateScript() { @Override
我有一些 Java 实体类和一些 Kotlin 实体类。我刚刚将以下内容添加到我的 pom.xml 中: org.hibernate hibernate-jp
我遵循了 JPA 模型生成 guide我能够生成我需要的规范元模型。使用此 pom 设置: maven-compiler-plugin
是否可以为非实体类映射变量名称,如下例所示? import javax.persistence.metamodel.SingularAttribute; import javax.persistenc
假设我们有以下五个数据库表:员工、客户、月份、现场和付款。 给定以下 (Oracle) SQL 查询: select * from onsite o join client c on o.client
我刚刚使用 org.apache.openjpa.persistence.meta.AnnotationProcessor6 为我的 JPA2 实体生成元模型。 @javax.annotation.G
我尝试使用 hibernate 4.3.1.Final 在实体中保留 @ElementCollection。该实体如下所示: import javax.persistence.*; import ja
我正在验证 Apache MetaModel 作为存储抽象层,并且在 MongoDB 中进行主键查找时遇到了问题。 众所周知,mongo 中的每个文档都有唯一的 _id 列,其类型为 ROWID,并且
我必须处理声明如下的 View (Oracle 11g): create view V_SOME_VIEW as select X, Y from SOME_TABLE 及其实体: imp
在Sun Online resources ,他们提供了关于 Criteria/Metamodel API 用法的子示例,但据我了解 Java,它似乎无法工作: CriteriaQuery cq =
从 Spring 休息开始时出现以下错误 > org.springframework.beans.factory.BeanCreationException: Error > creating be
我正在尝试使用 Java 和 MetaModel API 查询 .CSV 文件并且没有成功。这个 API 对于 .XLS 文件很容易,但对于 .CSV 文件我很困惑,因为 SQL 查询没有表名。任何人
我正在尝试在 IntelliJ idea 中使用 Hibernate 生成元模型类。我已经看过最旧的教程,但它们对我没有帮助。还有其他方法可以生成该文件吗?我发现有关 IntelliJ 中元模型支持的
我正在尝试在 GAE 中编写一个 JDO 注释类,并且我想保留一个映射。该映射应该是一个实体字段,它是按日期散列的实体的集合。 (我什至不确定这是否是正确的方法)。 Eclipse 的自动完成功能为我
我对 Spring 还很陌生,正在尝试为 @Controller 做一些基本的集成测试。 @RunWith(SpringRunner.class) @WebMvcTest(DemoController
我尝试在Hibernate 6.3项目中生成JPA元模型,所以我添加了jpamodelgen依赖项:。然后尝试构建项目:MVN Install。但收到错误:生成JPA元模型时出错:Range[0,3]
我正在使用以下转换器将一组字符串作为逗号分隔值(带转义)保存在单个 VARCHAR 数据库列中: public class StringSetConverter implements Attribut
我是一名优秀的程序员,十分优秀!