Seam 2.2,Jboss 6.1,休眠3.5.6和MSQL Server 2008

并具有这样的功能。

public void deliverFile() {
    EntityManager jobbEntityManager = (EntityManager)Component.getInstance("jobbEntityManager");

    JobbStatusInterface jobbStatus = new JobbStatus();
    jobbStatus.setStatus(PluginStatus.INITIATED);
    jobbEntityManager.persist(jobbStatus);


            /**

                 Code here to save a file that takes a minutes
             **/





    jobbStatus.setStatus(PluginStatus.DONE);
    jobbEntityManager.flush();





    }
    public void checkJobb(){
    EntityManager jobbEntityManager =  (EntityManager)Component.getInstance("jobbEntityManager");

        jobbEntityManager.createQuery("from JobbStatus", JobbStatus.class).getResultList();


    }


我每10秒钟对checkJobb进行一次民意调查,因此如果执行了deliveryFile()函数。

checkJobb将upp排队并在查询处停止,因此,当deliveryFile()函数完成时,它会一次完成所有6个checkJobbs()。

即使我直接从数据库中选择它,它也被锁定并在deliveryFile()完成后完成查询。

无论如何有没有这样做,所以我可以在执行deliveryFile的同时做我的checkJobb()吗?

最佳答案

不确定使用以上代码要实现什么。如果要检查是否通过在两者之间加载作业状态来启动作业,则可能无法执行。由于尚未提交数据,并且您正在其他功能中使用其他会话,因此您可能看不到数据。

仅状态的最后一个值将被提交到数据库。

关于sql-server - hibernate 表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10141138/

10-13 00:13