【发布时间】:2013-02-15 16:51:47
【问题描述】:
EclipseLink 2.3.2(可能更高版本)中的 Informix 支持存在一个相当严重的错误,即未正确执行外部连接。我想继承 EclipseLink InformixPlatform 类来解决这个问题。
由于各种原因,我不想在我的persistence.xml 中指定要使用的数据库平台。我宁愿依靠 EclipseLink 发现合适平台的能力。
显然,开箱即用的 EclipseLink 不知道我的子类。我如何告诉 EclipseLink 我的子类存在,并且应该优先于通常自动发现的子类?
出于比较目的,Hibernate 在“方言解析器”的标签下提供了一些机制,正是这样做的:交给它一个自定义方言解析器,它让 您 处理自动发现过程。 EclipseLink 2.3.2 中的等价物是什么?
【问题讨论】:
-
我看到了
eclipselink.session-event-listener属性,但我不确定这是不是用蒸汽锤追赶蚊子。这会是正确的方法吗? -
查看代码,它实际上是行不通的,因为如果我尝试从我的会话事件监听器设置平台,它会在我的监听器返回后立即被
loginAndDetectDatasource()删除! -
丑:也许我应该捕获
postLogin事件,注销,然后设置我要使用的平台,然后再次登录。希望有更好的办法! -
这种通用方法似乎不起作用。稍后,当您尝试使用表生成器插入实体时,这样做会导致
NullPointerExceptions 从QuerySequence中返回。没有想法了。 -
我现在要尝试
SessionCustomizer方法。没有关于此类的文档表明它在生命周期中的哪个位置被调用。
标签: eclipselink