我试图理解两个实体之间的OneToOne映射。
我无法理解如何在mappedBy中指定OneToOne属性,使其成为双向关系。
UserID可嵌入类型:
@Embeddable
public class UserID implements Serializable {
private static final long serialVersionUID = 1L;
private int ssnID;
private int uniqueNum;
// getters and setters..
}
VehicleID可嵌入类型:
@Embeddable
p
我仍然在学习hibernate中的许多东西,以及处理hibernate中的表之间的关系,因此在我的一个项目中,我面临以下问题:
有什么问题?
我有一个包类(它是一个实体类)
@Entity
public class Package {
@OneToOne(fetch = FetchType.EAGER)
User sender;
/*rest of class getter setter etc*/
}
我有一个用户类(再次是一个实体)
@Entity
public class User {
@oneToOne
Person person;
/*rest of user c
下面两个声明的确切区别是什么
B是拥有方
@Entity
class A {
@Id int id;
@OneToOne
B b;
}
@Entity
class B {
@Id int id;
@OneToOne(mappedBy="b")
A a;
}
A是拥有方
@Entity
class A {
@Id int id;
@OneToOne(mappedBy="a")
B b;
}
@Entity
class B {
@Id int id;
@OneToOne
A a;
}
我有以下课程:
//Product class
public class Product {
@Id
@GeneratedValue
private Long id;
private String name;
//Package Class
public class Package {
@Id
@GeneratedValue
private Long id;
@OneToOne(cascade=CascadeType.ALL)
private Product product;
private int quantity;
private char mode;
private String
第404页上的“JavaPersistence2.0,最终版本”有以下示例:
示例3:从可嵌入类到另一个实体的一对一关联。
@Entity
public class Employee {
@Id int id;
@Embedded LocationDetails location;
...
}
@Embeddable
public class LocationDetails {
int officeNumber;
@OneToOne ParkingSpot parkingSpot;
...
}
@Entity
public class ParkingSpot {
@I
当我从实体类自动生成表时,JPA如何处理1:1单向关系?如果我自己创建SQL表,JPA将如何创建这些表,我对此感到困惑。
我的问题是如何设置外键。
假设我有一个客户实体和一个这样的地址实体:
@Entity
public class Customer{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(cascade = CascadeType.ALL)
private Address address;
//setters and g
Hibernate似乎强制执行实体之间的强制关系。但是,我有一个User实体和一个Portfolio实体。每个User可以有0个或1个项目组合(但每个Portfolio必须有一个User)。因此,User应该能够在不删除Portfolio实体的情况下删除User。到目前为止,我还不能实现这个结果。相反,如果User删除了他/她的Portfolio,该User也会被删除。 我如何修改我的注解以达到预期的结果? -User /*
* Each User can have a Portfolio with many Accounts.
*/
@Entity
@Check(constraints
我有两个实体:、User、和UserProfile,它们之间存在双向@OneToOne关系。
由于一些旧的DB设计,UserProfile是所有者( user_id列在users_profiles表中)
The relationship is Lazy as I have fetchType Lazy and optional = false.
一切都如预期的那样工作,我的意思是当我加载一个UserProfile时,它也不会自动加载用户。我想这是完全正常的,因为我从业主方面加载。
我的问题是,如果我加载一个用户(拥有的一方),它会自动加载UserProfile,尽管这种关系是懒惰的。
我的意思
在一个多模块应用程序中,我有来自两个不同模块的两个实体类。一个实体在另一个实体上具有单向一对一关系。
主要的实体"Song“来自一个模块song-core,它的定义如下:
@Entity
public class Song {
@Id(strategy = GenerationType.IDENTITY)
private int id;
private String name;
}
下一个名为"SongLyrics“的实体来自模块"song-lyrics",其定义如下:
@Entity
public class SongLyrics {
@
我想使用一个OneToOne设置一个Formula实体。
我尝试了以下方法,但结果总是null (我猜是因为列KEY_MEDIA_CONTENT总是null):
@OneToOne
@JoinColumn(name="KEY_MEDIA_CONTENT")
@Formula(value = "SELECT MEDIAASSET_ORDER_ID AS KEY_MEDIA_CONTENT FROM PRODUCTION_MEDIAASSET_NEW WHERE KEY_TEXT=1 AND PRODUCTION_ORDER_ID=PRODUCTION_ORDER_ID
我是新来的冬眠和JPA。我已经做了我的研究,并阅读了关于OnetoOne关系()的文档。我试图相应地绘制它的地图,除了文档之外,我还在其他来源寻找解决方案,但它们都没有对我有帮助。每次我得到以下例外情况:
Exception in thread "main" org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: org.example.entity.SalesReps.reg
我有一个具有四个组合键的实体。由于Hibernate不能生成具有组合键的实体,因此我必须手动生成。这就是我正在尝试的方式:
@Entity
@IdClass(ExamRequisitionPK.class)
@Table(name="ExamRequisitions")
@NamedQuery(name="ExamRequisition.findAll", query="SELECT er FROM ExamRequisition er")
public class ExamRequisition implements Serializable
我的Hibernate模式有一个Port实体。每个端口应该有与另一个端口的零或一个连接,因此有一个"connectedPort“字段引用相同的实体:
public class Port {
// ...
@OneToOne
@JoinColumn
private Port connectedPort;
// ...
}
但通常,对于@OneToOne来说,关系中会有“拥有”的一面和关系的“映射”方面--这里也是这样吗?如果是的话,怎么做和为什么?
在我的单元测试中,我得到了JpaSystemException: ids for this class must be manually assigned before calling save() error。我已经改写了我的实体,以使问题更短,更易读。
因此,学生与表EnrolledInfo有一个可选的一对一的关系。
学生实体
@Entity
@Table(name = "Student")
public class Student {
@Id
@Column(name = "studentId")
@GeneratedValue