java - Hibernate 5.2.9 :@Basic(fetch = FetchType. LAZY) 不起作用

标签 java hibernate postgresql-9.4

我看到之前在堆栈溢出中以不同的方式对同一件事提出了很多问题。我在 Hibernate 论坛上查看了这个问题之一,他们提到它会起作用。大家可以引用这个link

基于此链接,延迟加载应该适用于像 byte[] 这样的基本属性类型

我正在使用 hibernate 版本 5.2.9 + postgresql DB

我的实体模型如下所示

@Entity
@Table
public class ResourceFileEntity {
@Id
@GeneratedValue
long id;

@Column
private String storageType;

@Column
private String path;

@Lob
@Basic(fetch = FetchType.LAZY)
@Column
byte[] fileContent;
// removed getters/setter for readibility
}

获取实体的代码是

public ResourceFileEntity fetchEntity(long jId) throws IOException {
Session session = factory.openSession();
ResourceFileEntity entity = null;
Transaction tx = null;
    try {
        tx = session.beginTransaction();
        entity = session.find(ResourceFileEntity.class, jId);
        System.out.println(Hibernate.isPropertyInitialized(entity,      "fileContent" ));
        tx.commit();
    } catch (HibernateException e) {
        if (tx != null)
            tx.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }
    return entity;
}

很多人都提到了字节码增强,我确实尝试在我的项目 build.gradle 中添加所有必需的详细信息并使用@LazyGroup,但仍然没有成功。

对此的任何意见都会有很大帮助!

最佳答案

您可能会遇到 HHH-10929 。尽管这尚未通过使用 Hibernate 的独立测试用例来证明 template 。如果您认为存在问题,那么可能值得创建一个?

关于java - Hibernate 5.2.9 :@Basic(fetch = FetchType. LAZY) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43261550/

相关文章:

java - fragment - 错误膨胀

java - Spring jpa在回滚期间保存数据

java - 具有急切加载问题的 Hibernate 多对多

postgresql - Windows 中 pgpass.conf 文件的 pg_dump 密码验证失败错误

PostgreSQL:随时间变化的行数

java - 什么是时间复杂度以及如何找到它?

Java:try-catch 后缺少返回语句

java - 更改后端 : Adapt jpaContext. xml 以用于 Hibernate 和 Oracle 而不是 MYSQL

python - Peewee 连接池与 postgresql 9.4 和 JSON 字段支持

Java:有关正则表达式的帮助