【发布时间】:2013-06-07 23:10:55
【问题描述】:
我有一个工作应用程序,我使用 Java EE 6 和 EclipseLink 来实现持久性和一个 PostgreSQL 数据库。
对于用户注册,我想将 PostgreSQL 中的密码设置为:
... password = crypt('inputPassword',gen_salt('bf')) ...
由于我不能为此使用 DigestUtils,我必须手动将用户插入数据库。
为了使我的应用程序可配置,我不想使用
InitialContextInstance.lookup(dataSource) 但要以某种方式从 EntityManager 中提取它(或连接)
喜欢:
DataSource ds = entityManagerInstance.someFunctionThatReturnsADataSourceOrConnection();
或者是否可以结合使用 createNativeQuery 或类似的东西 有准备好的声明来防止注射?
【问题讨论】:
-
如果您使用数据源进行 JPA 配置,您应该能够使用
@Resource(name="myDb") DataSource myDB访问它。不是吗?而且我认为您也可以使用 JPA 定义参数化查询。 -
是的,这可能有效,但我仍然需要知道名称。我想为注入的 EntityManager 获取配置的默认数据源。