Java 是否有关于Hibernate';什么是事件类型?

Java 是否有关于Hibernate';什么是事件类型?,java,hibernate,Java,Hibernate,我通常很犹豫是否发布这样的问题,但我似乎找不到任何有用的东西:是否有关于Hibernate事件的文档,即事件的含义、抛出时间、包含的数据等 任何提示或链接都将不胜感激 要获得事件列表,我只需查看一下org.hibernate.event.spi.EventType,从该类中我可以得到实际的事件类。然而,关于这些类的文档非常稀少,hibernate用户手册或开发人员指南也没有提供任何内容(只是如何注册侦听器,但实际上很简单) 我已经尝试添加在调用时只记录的侦听器,但是输出顺序有点混乱,我很难对调用

我通常很犹豫是否发布这样的问题,但我似乎找不到任何有用的东西:是否有关于Hibernate事件的文档,即事件的含义、抛出时间、包含的数据等

任何提示或链接都将不胜感激

要获得事件列表,我只需查看一下org.hibernate.event.spi.EventType,从该类中我可以得到实际的事件类。然而,关于这些类的文档非常稀少,hibernate用户手册或开发人员指南也没有提供任何内容(只是如何注册侦听器,但实际上很简单)

我已经尝试添加在调用时只记录的侦听器,但是输出顺序有点混乱,我很难对调用时的内容进行假设

注意:下面的例子可能看起来很长很抽象,试图说明我的问题。我这里只说两件事,还有33件似乎没有记录在案

有两个侦听器:

  • PreloveEventListener-JavaDoc表示在将属性值注入新加载的实体实例之前调用了
  • LoadEventListener-JavaDoc说
    定义了处理会话生成的加载事件的契约。
如您所见,JavaDoc没有提供太多信息,至少对于
LoadEventListener
。这两个事件实际上可能涉及不同的情况,但正如我已经说过的,我找不到任何关于这方面的文档

侦听器也不总是按看起来相同的顺序调用。 我将两个侦听器都添加到一个现有的web应用程序中,并进行了一些单击

以下是结果(抽象输出):

行动1产出

preload: entity of type A with id 0
行动2产出

preload: entity of type A with id 1
load: entity of type A with id 1
preload: entity of type B with id 0
行动3产出

preload: entity of type C  with id 0
load:    entity of type D  with id 0
load:    entity of type E  with id 0
load:    entity of type F  with id 0
load:    entity of type A  with id 0
preload: entity of type F' with id 0
preload: entity of type A  with id 0
load:    entity of type C  with id 0
...
load:    entity of type A  with id 0
load:    entity of type C  with id 0
描述我们在这些动作中所做的将超出范围,但正如您所看到的,我们在动作3中主要加载简单的实体和更复杂的结构

正如您所看到的,有时仅触发预加载事件(例如动作1中的
A
),有时仅触发一个加载(例如动作3中的
F
),有时在预加载(例如动作3中的
C
)之后会发生多个加载事件,甚至会交替加载和预加载事件(例如动作3中的
A

F'
将是
F
的一个子类,它可以解释
F'
加载
F
后的预加载,但其他情况不那么容易解释。我确信某些事件没有被调用是有一个确定的顺序和原因的,但正如我最初所说的,我丢失了相关的文档


对于所有读过这个“简短”例子的人:我希望它不会让你们太困惑。如果需要的话,我可以提供一个更具体的例子,甚至可能是一个更简单的例子,但我有一种感觉,这些简单的例子产生更容易解释的结果,而我们更复杂的现实世界的情况仍然没有很好地理解。正如我所说,我正在寻找35种Hibernate事件类型的一些文档,而不是描述案例的详细说明。

我想你不会得到一份文档来解释它们何时抛出等,但这里至少有一个列表:@Jean FrançoisSavard感谢链接,但正如我已经说过的,我有来源和事件类型列表,所以基本上我可以挖掘整个来源并尝试自己提取信息——这很乏味,很可能我会错过一些东西。@投票结果接近的人:我知道我基本上要求的是“场外资源”但我不确定对原因的一般描述是否与问题相符。我描述了我尝试的内容,没有征求意见,但我需要关于特定编程问题的信息(Hibernate何时抛出哪个事件)。由于这一点仍有争议,请至少友好一点,并简要解释一下为什么您仍然觉得它离题了,以便我可以学习。:)这仅仅是因为我需要文档吗?如果有的话?@Thomas你找到其他文档了吗?“我也在找它,到目前为止什么也没找到。”库图达霍德瓦拉不幸没有找到。如果你发现了什么,我希望你能在这里报告。