小编ncl*_*ark的帖子

当事务属性为"必需"时,为什么CMT会在退出EJB方法时提交?

我一直发现我已经存在的事务是在标记的EJB的任何方法中提交的@ejb.transaction type="Required".这可能是正确的吗?

我的期望是,一个EJB"要求"交易是指:如果有一个已经存在,它会礼貌地离开它时未提交这样做,不管是谁调用开始()可以继续调用之前将它用于进一步的操作commit()rollback().[当然,如果首先没有事务,那么EJB方法将同时调用begin()commit()/ rollback().]

我的期望是错误的,还是我应该寻找配置错误?

可能有必要补充说我在EJB中使用了Hibernate 3.我在调用EJB方法之前获取了UserTransaction.EJB生成的包装器ServerTransaction.commit()在退出时调用,Hibernate将其挂钩并利用该机会关闭其Session.我得到的错误是一个Hibernate延迟加载异常,因为当我尝试访问Hibernate持久化对象上的getter时会话被关闭.所以从技术上来说,我不是百分之百确定ServerTransaction.commit()我是否观察到我必须承诺UserTransaction我开始(可能ServerTransaction.commit()并不总是真正遵循"真正的"提交?),但如果它没有 - 那么基于什么基础是Hibernate关闭会议?

更新: 我相信我的上述假设是正确的,但我的观察有点偏.请参阅下面的我自己提供的答案.

ejb transactions java-ee java-ee-6 ejb-3.1

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

Haskell"id"函数必须返回与传入的值相同的要求的类别 - 理论基础是什么?

以下都是如此?

  1. Hask类别中,Objects是Haskell类型,而Morphisms是Haskell函数.价值观不起作用Hask.
  2. 身份态射被定义为源自对象A并终止于同一对象的箭头A.
  3. 身份态射的作用由Haskell id函数扮演.
  4. 从Haskell id函数返回的值必须与传入的参数值相同.

如果在类别理论中将身份态射定义为从对象A返回到相同对象A的箭头,那么类型的任何和每个Haskell函数都不满足该描述f :: A -> A吗?

还有一个问题,其答案可能也可能涵盖这一主题,但他们似乎对类别理论有一定程度的熟悉,而我很遗憾不具备这种理论.

在我看来,这是一个非常基本的初级问题.那么有人可以仅使用初学者可以理解的语言,符号和名义构造来提供答案吗?

haskell category-theory

4
推荐指数
2
解决办法
427
查看次数

当我在左边放置一个Double Matrix而在右边放一个Double时,为什么( - )无法进行类型检查?

由于hmatrix为Matrix类型提供了Num的实例,我可以表达元素减法,如:

m = (2><2)[1..] :: Double Matrix
m' = m - 3
Run Code Online (Sandbox Code Playgroud)

这很好,就像3a一样Num,并且通过从每个元素中减去3来创建矩阵m.

为什么这不起作用:

m' = m - (3::Double)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Couldn't match expected type ‘Matrix Double’
            with actual type ‘Double’
In the second argument of ‘(-)’, namely ‘(3 :: Double)’
In the expression: m - (3 :: Double)
Run Code Online (Sandbox Code Playgroud)

我希望编译器能够理解a Double也是一个Num.为什么看似不是这样?

haskell hmatrix

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