当前位置: 首页 > 面试题库 >

如何在JPA配置中设置默认架构名称?

公冶谦
2023-03-14
问题内容

我发现在hibernate配置文件中,我们可以设置参数hibernate.default_schema

<hibernate-configuration> 
   <session-factory>
      ...
      <property name="hibernate.default_schema">myschema</property>
      ...
   </session-factory>
</hibernate-configuration>

现在,我正在使用JPA,我也想这样做。否则,我必须将参数添加schema到每个@Table注释中,例如:

@Entity
@Table (name = "projectcategory", schema = "SCHEMANAME")
public class Category implements Serializable { ... }

据我了解,此参数应该在配置的这一部分中:

<bean id="domainEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="JiraManager"/>
    <property name="dataSource" ref="domainDataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="false"/>
            <property name="showSql" value="false"/>
            <property name="databasePlatform" value="${hibernate.dialect}"/>
        </bean>
    </property>
</bean>

<bean id="domainDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="${db.driver}" />
    <property name="jdbcUrl" value="${datasource.url}" />
    <property name="user" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
    <property name="initialPoolSize" value="5"/>
    <property name="minPoolSize" value="5"/>
    <property name="maxPoolSize" value="15"/>
    <property name="checkoutTimeout" value="10000"/>
    <property name="maxStatements" value="150"/>
    <property name="testConnectionOnCheckin" value="true"/>
    <property name="idleConnectionTestPeriod" value="50"/>
</bean>

…但是我在Google中找不到它的名字。有任何想法吗?


问题答案:

也不知道为此的JPA属性。但是,您可以仅将Hibernate属性(假设您使用Hibernate作为提供程序)添加为

...

<property name="hibernate.default_schema" value="myschema"/>

...

hibernate应该接起来



 类似资料:
  • 当我给出命令时,我得到默认配置文件的以下输出: 然而,当我给一个命名的配置文件的命令时,我得到了一个配置文件名 我曾尝试通过读取'set'CLI命令将默认配置文件命名为,我还尝试了,因为我认为在阅读本页后,变量的命名就是这样的。我之所以要这样做,是因为我想要有两个配置文件,并且我想要使用环境变量在配置文件之间切换。

  • 问题内容: 以下问题有多种答案/技术: 如何为golang结构设置默认值? 如何在Golang中初始化结构 我有几个答案,但需要进一步讨论。 问题答案: 强制方法获取结构(构造方法)。 一个好的设计是使您的类型不导出,但提供一个类似NewMyType()的导出构造函数,您可以在其中正确初始化struct / type。还返回接口类型而不是具体类型,并且该接口应包含其他人希望对您的值进行的操作。当然

  • 以下问题有多种答案/技巧: 如何为golang结构设置默认值? 如何在 golang 中初始化结构 我有几个答案,但需要进一步讨论。

  • 问题内容: 有没有一种方法可以设置查询的模式,以便在其余查询中我可以仅按表名引用表,而无需在表名前添加表名? 例如,我想做这样的事情: 与此相反: 问题答案: 一个快速的谷歌把我指向了这个页面。它说明从sql server 2005开始,您可以使用ALTER USER语句设置用户的默认架构。不幸的是,这意味着您将对其进行永久更改,因此,如果需要在模式之间进行切换,则每次执行存储过程或一批语句时都需

  • 当我为数据库生成DDL时,我不想有任何外键。 根据< code > javax . persistence . constraint mode ,有一个默认值: 那么如何在Hibernate中设置默认值呢? 我在JPA中使用Hibernate通过Spring Boot数据。

  • 问题内容: 我正在使用weblogic和oracle对Web应用程序进行编程。数据源是通过JNDI配置的,具有受限制的数据库用户,该用户可以DML到表中,但不能DDL。您可能会猜到,该用户不是这些表的所有者,但已授予该用户访问权限。 假设他是GUEST_USER 该应用程序正在使用JPA + EclipseLink,并且已经定义了许多实体。我不想在每个实体类中都写入要更改架构的属性。我已经尝试过使