JPA @OneToOne @PrimaryKeyJoinColumn 延迟加载怎么配置呢?哪位指点下,谢谢。

梦百川 2013-10-29 03:53:05
使用JPA @OneToOne @PrimaryKeyJoinColumn 延迟加载怎么配置呢?哪位指点下,谢谢。

数据库:
主表:my_parent,两个字段:id(主键)、name
从表:my_children,也是两个字段:parent_id(主键)、name
从表中使用的parent_id是主表的id。
主表中的id,从表中可以没有对应的parent_id,但从表的parent_id主表中一定有对应的id。

对应Java的实体类为:MyParent MyChildren
根据以上描述,这两个类的关系是符合OneToOne和PrimaryKeyJoinColumn的。
由于查询MyParent的时候立即加载MyChildren,查询效率会明显变慢,并且有时候并无必要查询MyChildren,所以现在想延迟加载MyChildren,如何实现呢?欢迎大家赐教!

...全文
269 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
悲催的程序猿 2013-10-30
  • 打赏
  • 举报
回复
引用 4 楼 shijiedemuguang 的回复:
[quote=引用 3 楼 xietingyan 的回复:] @OneToOne(fetch=FetchType.LAZY) 这个是你想要的吗
谢谢xietingyan,这样配置在我的使用场景中不会延迟加载。 我的场景中@OneToOne @PrimaryKeyJoinColumn是同时使用的,我想这可能影响了OneToOne的一些原本可行的配置。 [/quote] 楼主问题解决了没有?贴出来看看。
梦百川 2013-10-30
  • 打赏
  • 举报
回复
引用 3 楼 xietingyan 的回复:
@OneToOne(fetch=FetchType.LAZY) 这个是你想要的吗
谢谢xietingyan,这样配置在我的使用场景中不会延迟加载。 我的场景中@OneToOne @PrimaryKeyJoinColumn是同时使用的,我想这可能影响了OneToOne的一些原本可行的配置。
xietingyan 2013-10-29
  • 打赏
  • 举报
回复
引用 2 楼 shijiedemuguang 的回复:
[quote=引用 1 楼 xietingyan 的回复:] jpa的配置说明可以在这里查到 http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html#UniqueConstraint

@Entity
public class Order {
    @Id
    protected int id;
    protected long quantity;
    @ManyToOne(fetch=LAZY)
    protected Item item;
    ...
}
谢谢xietingyan。这个链接中描述的情况和我的场景不同,还没有发现可借鉴的地方。 [/quote] @OneToOne(fetch=FetchType.LAZY) 这个是你想要的吗
梦百川 2013-10-29
  • 打赏
  • 举报
回复
引用 1 楼 xietingyan 的回复:
jpa的配置说明可以在这里查到 http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html#UniqueConstraint

@Entity
public class Order {
    @Id
    protected int id;
    protected long quantity;
    @ManyToOne(fetch=LAZY)
    protected Item item;
    ...
}
谢谢xietingyan。这个链接中描述的情况和我的场景不同,还没有发现可借鉴的地方。
xietingyan 2013-10-29
  • 打赏
  • 举报
回复
jpa的配置说明可以在这里查到 http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html#UniqueConstraint

@Entity
public class Order {
    @Id
    protected int id;
    protected long quantity;
    @ManyToOne(fetch=LAZY)
    protected Item item;
    ...
}

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧