相关疑难解决方法(0)

在JPA/Hibernate中正确使用flush()

我正在收集有关flush()方法的信息,但我不清楚何时使用它以及如何正确使用它.根据我的阅读,我的理解是持久化上下文的内容将与数据库同步,即发出未完成的语句或刷新实体数据.

现在,我得到下列设想两个实体AB(在一比一的关系,而不是由JPA执行或模拟).A有一个复合PK,它是手动设置的,还有一个自动生成的IDENTITY字段recordId.这recordId应该B作为外键写入实体A.我正在保存AB进行单笔交易.问题是自动生成的价值A.recordId是不可用的事务中,除非我做的一个显式调用em.flush()打完电话后em.persist()A.(如果我有一个自动生成的IDENTITY PK,那么该值将在实体中直接更新,但这不是这里的情况.)

可以em.flush()在一个事务中使用时造成什么伤害?

java persistence hibernate jpa transactions

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

Hibernate读取功能显示旧数据

我在显示数据库中的数据时出现问题.如果我更新一个对象,有时我会得到旧数据,有时候是新数据.更新功能运行良好(我可以在DB中看到正确的更新),而read函数似乎获得缓存数据.我试图禁用两个缓存,尝试在更新/保存期间打开和关闭会话,但它仍然无法正常工作.User和Store bean都有Lazy提取.谢谢!

阅读功能:

    public static List<Store> getStoreByUser(User user)
        throws HibernateException {
    List<Store> result = null;
    Session session = sessionFactory.getCurrentSession();   
    Transaction transaction = null;
    try {
        transaction = session.getTransaction();
        Criteria criteria = session.createCriteria(Store.class);
        criteria.add(Restrictions.eq("userUserID", user));
        result = criteria.list();
    } catch (HibernateException he) {
        logger.error("No Store found for user: = " + user, he);
        throw he;
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

更新/保存功能:

    public static Integer insertOrUpdateStore(Store store)
        throws HibernateException {
    Integer id = null;
    Session session = sessionFactory.getCurrentSession();   
    Transaction transaction = null;
    try …
Run Code Online (Sandbox Code Playgroud)

session caching hibernate

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

oracle中的隔离级别

我想知道有关提交的不同隔离级别,并且还想了解行级和表级锁.

database oracle transaction-isolation isolation-level

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