相关疑难解决方法(0)

Java Persistence API中FetchType LAZY和EAGER之间的区别?

我是Java Persistence API和Hibernate的新手.

Java Persistence API FetchType.LAZY和之间的区别是什么FetchType.EAGER

java orm hibernate jpa java-persistence-api

512
推荐指数
12
解决办法
44万
查看次数

在双向JPA OneToMany/ManyToOne关联中,"关联的反面"是什么意思?

TopLink JPA Annotation Reference的这些示例中:

例1-59 @OneToMany - 使用泛型的客户类

@Entity
public class Customer implements Serializable {
    ...
    @OneToMany(cascade=ALL, mappedBy="customer")
    public Set<Order> getOrders() { 
        return orders; 
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

例1-60 @ManyToOne - 带有泛型的订单类

@Entity
public class Order implements Serializable {
    ...
    @ManyToOne
    @JoinColumn(name="CUST_ID", nullable=false)
    public Customer getCustomer() { 
        return customer; 
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我看来,该Customer实体是该协会的所有者.但是,在mappedBy同一文档中对属性的解释中,写成:

如果关系是双向的,则将关联的反向(非拥有)侧的mappedBy元素设置为拥有该关系的字段或属性的名称,如示例1-60所示.

但是,如果我没有错,看起来在示例中,mappedBy实际上是在关联的拥有方指定,而不是非拥有方.

所以我的问题基本上是:

  1. 在双向(一对多/多对一)关联中,哪个实体是所有者?我们如何指定一方作为所有者?我们如何指定多方作为所有者?

  2. 什么是"关联的反面"?我们怎样才能将一面指定为反面?我们如何将多边指定为反面?

java hibernate jpa

160
推荐指数
4
解决办法
11万
查看次数

ORM映射中的"拥有方"是什么?

拥有方到底意味着什么?一些映射示例(一对多,一对一,多对一)的解释是什么?

以下文本摘自Java EE 6文档中对@OneToOne的描述.你可以看到这个概念拥有方在里面.

定义与具有一对一多重性的另一个实体的单值关联.通常不必明确指定关联的目标实体,因为它通常可以从被引用的对象的类型推断出来.如果关系是双向的,则非拥有方必须使用OneToOne批注的mappedBy元素来指定拥有方的关系字段或属性.

java mapping orm hibernate jpa

117
推荐指数
3
解决办法
3万
查看次数

标签 统计

hibernate ×3

java ×3

jpa ×3

orm ×2

java-persistence-api ×1

mapping ×1