- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下简单的设计:
(来源:kawoolutions.com)
这基本上是 JPA 不支持的非不相交继承的一种解决方法。人员可以单独存在,但可以选择有单个玩家实体、单个教练实体或两个实体来完成逻辑。
这是相当容易理解的 JPA 2.0 映射(注意@Id 前向关联):
@Entity
@Table(name = "Persons")
public class Person implements Serializable
{
@Id
@Column(name = "id")
private Integer id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@OneToOne(mappedBy = "person")
private Coach coach = null;
@OneToOne(mappedBy = "person")
private Player player = null;
...
}
@Entity
@Table(name = "Players")
public class Player implements Serializable
{
@Column(name = "registration_nbr")
private String registrationNbr = null;
@Id
@OneToOne
@JoinColumn(name = "id")
private Person person = null;
...
}
@Entity
@Table(name = "Coaches")
public class Coach implements Serializable
{
@Column(name = "license_nbr")
private String licenseNbr = null;
@Id
@OneToOne
@JoinColumn(name = "id")
private Person person = null;
...
}
Player 和 Coach 实体类几乎相同。
Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: persons] Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:374)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at tld.persons.Main.main(Main.java:32)
Caused by: org.hibernate.AnnotationException: Unknown mappedBy in: tld.persons.model.Person.coach, referenced property unknown: tld.persons.model.Coach.person
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:159)
at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1686)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1393)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1477)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1096)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:278)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:362)
... 4 more
当切换到老式 JPA 1.0 映射时,一切都再次正常运行。 Hibernate 以某种方式似乎对上述映射有问题。
最佳答案
如果我们忘记在persistence.xml 中声明实体类,就会遇到这个问题。
关于Hibernate: AnnotationException: Unknown MappedBy in ... 反向引用的属性未知 (mappedBy),双向@OneToOne 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5837891/
我有以下简单的设计: (来源:kawoolutions.com) 这基本上是 JPA 不支持的非不相交继承的一种解决方法。人员可以单独存在,但可以选择有单个玩家实体、单个教练实体或两个实体来完成逻辑。
You create a bidirectional one-to-one relationship using fields on both classes, with an annotation
我有一个查询,我碰巧有一个名为“SGOrdCompra”的表,将他与“SGPersona”链接了两次,表如下: Sgordcompra.java @Entity @Table(name = "`SGO
我想我理解属性 mappedBy 如果放入 @OneToMany 字段中意味着什么(即表示字段类型的表具有该表的外键)声明了 @OneToMany(mappedBy="...") ,但我不完全理解它的
我想将现有的 JPA 实体拆分为 POJO 父类(super class)和实体子类。我想将 POJO 父类(super class)放入一个库项目中,该项目可以被其他不使用 JPA 的项目引用。 我
例如,当我们在@OneToMany 中使用mappedBy 注解时,我们是否提到了类名或表名? 一个例子: @Entity @Table(name = "customer_tab") public c
我在带注释的对象中设置一对多关系时遇到问题。 我有以下几点: @MappedSuperclass public abstract class MappedModel { @Id @Ge
我创建了三个类 - User、UserSubscription 和 Subscription。我希望 UserSubscription 表中的用户应由 User 表中现有的用户引用。那么,如何使用ma
我有一个带有 Hibernate 注释的 Java 类,它引用另一个 POJO: @Entity @Table(name = "Patient_Visit_Transaction") public c
我仍然不确定哪种是处理 em.remove(entity) 的最佳实践,该实体位于 JPA 中使用 mappedBy 映射的多个集合中。 考虑像 Property 这样的实体引用三个其他实体:Desc
我正在开发 java 应用程序并使用 JPA 与数据库交互,我有两个重要的问题: 我想在两个类之间建立双向链接,因为我需要访问双方的数据。让我们以 A * -1 B 的两个类 A 和 B 为例(如 U
Foo 有: @ManyToMany(mappedBy = "foos") private Set bars 而酒吧有: @ManyToMany private Set foos 除了table是叫f
这个问题已经有答案了: What is cascading in Hibernate? [duplicate] (2 个回答) 已关闭 4 年前。 我正在学习 Hibernate 并遇到一个问题:ma
我有三个类,Site、GoupIP 和 IP 一个站点有一个或多个 GroupIP。一个 GroupIP 有一个或多个 IP。 代码如下: 网站 @Entity @Table(name = "site
当我想使用 persist 方法将新的 UserDetails 对象添加到我的数据库时,我的 JPA 数据库出现问题。然后我得到异常:“关键 hibernate 的重复条目 2”此异常与产品类相关。我
我在 Parent 中提供了一个简单的 oneToMany 关系,并在 Chile 实体类中提供了相应的 ManyToOne: 家长: @Entity @Table(name = "FormExtra
当我尝试获得一对多和多对一关系时,车辆表上的连接列出现问题。为什么 hibernate 正在搜索列 USER_ID 而不是将其连接到表中?我知道加入的目的,但是当我尝试将它与映射的 By 属性一起使用
错误:hibernate.AnnotationException: mappedBy 引用未知的目标实体属性 我知道为什么会出现错误,但我盯着它看的时间越长,就越找不到它:)。我只需要另一个人的观点。
首先,我的类(class): 用户 package com.patpuc.model; import java.util.List; import javax.persistence.Column;
下面两个声明到底有什么区别 B是拥有方 @Entity class A { @Id int id; @OneToOne B b; } @Entity class B { @Id
我是一名优秀的程序员,十分优秀!