gpt4 book ai didi

postgresql - JPA、EclipseLink、PostgreSQL 和模式

转载 作者:行者123 更新时间:2023-11-29 12:47:17 26 4
gpt4 key购买 nike

我想开发一个使用 JPA(EclipseLink 实现)和 PostgreSQL 作为数据库的 Java EE 应用程序。

我选择了一个数据库和多个模式,而不是多个数据库和每个数据库一个模式。

所以,在我的 persistence.xml 中我有类似的东西:

<persistence-unit name="00" transaction-type="JTA">

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>todo</jta-data-source>

<class>...</class>
<class>...</class>

<properties>
<property name="javax.persistence.target-database" value="PostgreSQL" />
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/testdb;create=true" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="userpwd" />
</properties>

</persistence-unit>

<persistence-unit name="01" transaction-type="JTA">

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>todo</jta-data-source>

<class>...</class>
<class>...</class>

<properties>
<property name="javax.persistence.target-database" value="PostgreSQL" />
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/testdb;create=true" />
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="userpwd" />
</properties>

</persistence-unit>

我可以很容易地引用持久化单元:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("01");
EntityManager em = emf.createEntityManager();

但是如何在 persistence.xml 中存储关于模式的信息?我想访问 testdb 数据库中的架构 0001

我可能可以直接通过 native SQL 更改模式,但是有没有办法将模式绑定(bind)到持久性单元?

谢谢

最佳答案

这里提出并回答了同样的问题: JPA - EclipseLink - How to change default schema

您可以使用 orm.xml 文件覆盖整个持久性单元的模式,或者根据需要在每个表注释或 xml 元素中定义它。

关于postgresql - JPA、EclipseLink、PostgreSQL 和模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com