- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
TL;DR 版本: 下面的代码在构建 SessionFactory 时给我一个“关联引用未映射的类”异常。应该在代码中更改什么以修复它?
即使 Ayende @Rahien 不建议在 this 2007 article 中使用到泛型类的映射我还是尝试了一下。我用了他提到的方法。首先是正在工作的部分:
<class name="Review`1[Person]" table="Review">
<id name="Id" column="ReviewId"><generator class="native" /></id>
<property name="Rating" />
<many-to-one name="Subject" column="PersonId" class="Person" />
</class>
相应的泛型类如下所示:
public class Review<T> : BaseEntity where T : IReviewable
{
public virtual int Rating { get; set; }
public virtual T Subject { get; set; }
}
这是有效的,我可以毫无问题地加载这些 Review
实体并在我的 MVC View 中显示它们。好的部分是,当我在 Controller 和 View 中使用它时,我的 Subject
将具有正确的类型。
但是,当尝试将 Review 项目的集合映射到我的 Person 类时,事情开始崩溃。这是我目前正在使用的映射:
<class name="Person">
<!-- abbreviated -->
<bag name="Reviews" table="Review">
<key column="PersonId"/>
<one-to-many class="Review`1[Person]" />
<!-- Also tried these:
<one-to-many class="table="Review">
... plus a few variations with fully qualified names ...
-->
</bag>
</class>
有了这个(缩写的)类:
public class Person : BaseEntity, IReviewable
{
/* Abbreviated */
public virtual IList<Review<Person>> Reviews { get; set; }
}
这在构建 SessionFactory 时以异常结束:
Association references unmapped class: ....insert one-to-many.class here....
那么问题来了:这里的问题是什么?这可能吗?我应该放弃映射通用实体吗?
最佳答案
代码映射为我生成了这个:
<class name="NHTest.Review`1[[NHTest.Person, NHTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" table="Review">
...
<many-to-one name="Subject" column="..." />
</class>
<class name="Person">
...
<bag name="Reviews">
<key column="..." />
<one-to-many class="NHTest.Review`1[[NHTest.Person, NHTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]" />
</bag>
</class>
因此,请尝试使用完全限定的名称。
关于c# - 一对一和泛型 : "Association references unmapped class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12547084/
我尝试在 Apache 服务器上运行的 Servlet 页面中执行 QVTo 转换文件,但收到“路径未映射”错误。 这是我的代码的一部分: ResourceSet resourceSet = new
我正在尝试将我的 DTO 类映射到 native 类。以下是类(class): public class CategoryResource { public int Id {
我有一项服务应该能够在不同的细节级别或不同的冗长模式下提供“用户配置文件”。 这些用户配置文件在数据库中与 JPA2 同步,并且一切正常。使用 MOXy (EclipseLink),我还在 XML 中
TL;DR 版本: 下面的代码在构建 SessionFactory 时给我一个“关联引用未映射的类”异常。应该在代码中更改什么以修复它? 即使 Ayende @Rahien 不建议在 this 200
给定的表 A 包含列 EntityType(指定类型 B 的实体/表或类型 C 的实体/表的枚举)和 EntityID(表 B 或表 C 中条目的 ID)。 B 类和 C 类都实现了 IBC 接口(i
几个小时以来,我一直在努力解决这个 NHibernate 问题。我在网络和 NHibernate 文档上进行了广泛的研究,但我无法理解这个问题。我对 NHibernate 比较陌生,但很喜欢它。不过,
Warning:(X,X) java: Unmapped target property: "vCpu". 今天开发项目,将grpc的DTO实体转化本地的DTO实体,实体的样子是这样的 class C
Warning:(X,X) java: Unmapped target property: "vCpu". 今天开发项目,将grpc的DTO实体转化本地的DTO实体,实体的样子是这样的 class C
我只是在学习 .NET Core 和 GraphQL,无法从网络上获得一个示例(我已经尝试了十几个)来工作。他们都在使用这个库 https://graphql-dotnet.github.io每次我尝
我正在适应 Hibernate Annotations,并且遇到了一个问题,希望有人可以帮助解决。 我有 2 个实体,Section 和 ScopeTopic。该部分有一个 List 类成员,因此是一
我知道这个问题之前已经被提出过很多次,但我仍然很困惑我的情况可能出在哪里: AnnotationException:使用 @OneToMany 或 @ManyToMany 定位未映射的类:com.co
请问有人可以帮助我吗?当我在 Client.class 中保存数据时出现此错误 客户端.class package com.pojo; import java.io.Serializable; imp
我的用户父类(super class): @MappedSuperclass public class User implements Serializable { @ManyToOne(ta
我有一个枚举如下: public enum UserRole { ADMIN,ORGANIZER,USER } 然后在另一个类中,我试图收集这个枚举: @Data @Entity public
用户类的配置:
我刚刚“完成”了我的新申请。当我用我的低成本平板电脑(有很多可用内存)测试它时,一切似乎都很好。但是如果我有时在我的 HTC 手机上运行它,我会在日志窗口中看到一条消息: 11-04 22:11:34
我找不到我的错误在哪里,我没有映射我的类,但对我来说一切都应该没问题..但不是。 谁能帮我找到它? org.hibernate.AnnotationException: Use of @OneToMa
我有 2 个实体:LCPUserDetails 和 LCPUserPrivilege。 LCPUserDetails 有一个 List 类成员,因此是一对多关系。当我运行单元测试时,我收到此异常: @
我在 SpringBoot 中编写了我的简单项目并使用 Hibernate。我有三个实体,但是当我启动应用程序时出现此错误: org.springframework.beans.factory.Bea
嗨,我正在尝试映射这个 pojo Rent 类来创建他的 hibernate 映射文件。 Rent.java (POJO): public class Rent implements Serial
我是一名优秀的程序员,十分优秀!