我有实体O,它包含实体C,C包含Set<A>。我知道O和它的“子实体”是暂时的。当我调用session.save(O)时,hibernate将检查C和每个A实体是否不存在,因为它们已经填充了键(不是在数据库中生成的,也不是通过自定义IdentifierGenerator生成的。
有没有可能强制hibernate不检查这些实体的状态?我知道如果它们没有键(键列为空),那么它将知道只需要insert into ...。但是如果我用null键保存该实体,我就不知道如何生成它们的值。
我有一张具有以下结构的桌子:
NUMBER RECORD_ID - PK
STRING NAME
STRING SOME_OTHER_BS
NUMBER ID - the person id i need to group the records by
我在hibernate实体中映射了这样的字段:
long id; // RECORD_ID
String name; // NAME
String someOtherBS; // SOME_THER_BS
long personId; // ID
现在的问题是,我需要在实体中有一组具有相同personId的元素。我试过这样做:
@ManyToO
用户实体具有与UserRole实体的OneToMany映射,即一个用户可以有多个角色ids。我收到以下错误:-
原因: org.hibernate.cfg.RecoverableException:在org.hibernate.mapping.Table(t_users)及其相关的超表和辅助表中找不到逻辑名称为: USER_ID的列
@Entity
@Table(name="T_USERS")
public class User {
@Column(name="ID_COL")
@Id
@SequenceGenerator(name=
我的Hibernate模式有一个Port实体。每个端口应该有与另一个端口的零或一个连接,因此有一个"connectedPort“字段引用相同的实体:
public class Port {
// ...
@OneToOne
@JoinColumn
private Port connectedPort;
// ...
}
但通常,对于@OneToOne来说,关系中会有“拥有”的一面和关系的“映射”方面--这里也是这样吗?如果是的话,怎么做和为什么?
我有一个关于Hibernate一对一关联的问题。我经常使用下面的映射一对一关联:
@Entity
public class Person(){
@Id
private Long id;
@OneToOne
private Address address;
//others attributes, getters and setters
}
@Entity
public class Address(){
@Id
private Long id;
//others attributes, getters and setters
}
但我看到其他人在使用:
@OneToOne
我有两个实体 @Entity
public class Address {
@ManyToOne(cascade = {CascadeType.PERSIST})
@JoinColumn(name = "city_id")
private City city;
}
@Entity
public class City {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "city_id")
private i
我们有一个包含多个实体的数据库,我以三个实体Case、Task和Note为例。任何实体都可以有一个注释,我们决定采用下面的DB设计。
Case:
- CaseId
- Title
Task:
- TaskId
- Title
Note:
- NoteId
- Desc
- ParentId (will contain the PK of Case/Task etc but without FK constraint)
POCOs如下:
Case
{
CaseId
Title
Notes
}
Task
{
TaskId
Title
Not
我知道@JoinColumn用于创建外键列,但我的问题有点不同。我注意到,如果我有带有mapped by的主实体和没有@JoinColumn的依赖实体,那么hibernate无论如何都会正确地创建两个表。
例如,我有护照和护照:
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@Data
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id
我想构建一个微服务架构。我正在使用Java技术,比如Spring、Hibernate等。在这个场景中,我将实体作为Java类。例如,A微服务具有A实体,B微服务具有B实体,等等。因此,如果A和B之间存在一对多关系,我需要将其中一个类导入到其他类中来声明它。
// in A microservice
// need to import class of B like "import com.project.B", but can't
// because, it is different project.
@Entity
class A{
@OneToMany
B