相关疑难解决方法(0)

懒惰地在冬眠中加载一个clob

关于这个谷歌搜索有很多人可以找到,但我还没有找到一个可行的解决方案来解决这个问题.

基本上我所拥有的是一个特定类的大型CLOB,我希望按需加载它.这种天真的方式是:

class MyType {

  // ...

  @Basic(fetch=FetchType.LAZY)
  @Lob
  public String getBlob() {
    return blob;
  }
}
Run Code Online (Sandbox Code Playgroud)

这虽然不起作用,显然是因为我使用的是oracle驱动程序,即Lob对象不被视为简单的句柄,但总是被加载.或者我已经被引导相信我的想法.有一种解决方案使用特殊的工具来进行延迟属性加载,但是由于Hibernate文档似乎表明他们对使这项工作正确无益,所以我宁愿不去那条路.特别是必须运行额外的编译通道和所有.

因此,我设想的下一个解决方案是将此对象分离为另一种类型并定义关联.不幸的是,虽然文档提供了相互矛盾的信息,但很明显,延迟加载对OneToOne与共享主键的关联不起作用.我将关联的一方设置为ManyToOne,但是当有共享主键时,我不太确定如何执行此操作.

所以有人能提出最好的解决方法吗?

java hibernate jpa clob lob

15
推荐指数
2
解决办法
1万
查看次数

JPA在简单的byte []字段级别处于懒惰状态

不幸的是,下面的代码不起作用.始终检索图像!

@Entity
public Car implements Serializable {
    ...
    @Basic(fetch = FetchType.LAZY) //Neither with @Lob
    private byte[] image;
    ...
}
Run Code Online (Sandbox Code Playgroud)

设置:JPA 2.0/Hibernate 3.5/MySQL 5.5

hibernate jpa lazy-loading nhibernate-mapping jpa-2.0

9
推荐指数
1
解决办法
1万
查看次数

Hibernate 抛出 SQLException 无法重置阅读器

java.sql.SQLException: could not reset reader
        at org.hibernate.lob.ClobImpl.getCharacterStream(ClobImpl.java:100)
        at org.hibernate.type.ClobType.set(ClobType.java:70)
        at org.hibernate.type.ClobType.nullSafeSet(ClobType.java:141)
        at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2025)
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2271)
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2688)
        at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
Run Code Online (Sandbox Code Playgroud)

你好,

上面是堆栈跟踪。它可以处理少量数据,但处理大量数据时会失败。我不明白可能是什么问题?

问候,普雷特

hibernate

4
推荐指数
1
解决办法
6566
查看次数

标签 统计

hibernate ×3

jpa ×2

clob ×1

java ×1

jpa-2.0 ×1

lazy-loading ×1

lob ×1

nhibernate-mapping ×1