JPA persistence.xml和MySQL - 没有采用正确的" hibernate.connection.url"目录

时间:2014-07-29 11:53:33

标签: java mysql hibernate jpa persistence.xml

我先使用 Ingres 数据库工作,但那里没有问题。 我已经在同一个端口中为我的MySQL数据库配置了两个模式/目录,一个用于生产者,另一个用于测试。 在 persistence.xml 文件中,我有以下配置:

<persistence-unit name="my_schema">
    ... classes ...

    <properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://URL:3306/my_schema"></property>
        <property name="hibernate.connection.username" value="my_user"></property>
        <property name="hibernate.connection.password" value="my_pass"></property>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"></property>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"></property>
        <property name="hibernate.connection.nombre" value="my_schema" />

    </properties>
</persistence-unit>

我的Java实体类具有以下定义和注释:

/**
* Constante generated by hbm2java
*/
@Entity
@Table(name = "CONSTANTE", catalog = "my_schema")
public class Constante implements java.io.Serializable {
    ....
}

当我在Ingres工作时,如果我想更改架构/目录,我只需要在持久性中更改属性&#34; hibernate.connection.url&#34; .XML

<property name="hibernate.connection.url" value="jdbc:mysql://URL:3306/my_schema_2">

在MySQL中,我必须在每个类中更改&#34;目录&#34; 注释。有没有更简单或更实际的方法来做到这一点? 实际上,在MySQL中,我可以在url架构部分编写我想要的任何内容,然后程序继续工作。

1 个答案:

答案 0 :(得分:0)

由于您的实体类是从架构生成的:

/**
 * Constante generated by hbm2java
 */

您只需删除表注释中的商品:

@Entity
@Table(name = "CONSTANTE")
public class Constante implements java.io.Serializable {

然后,就像您之前遇到的那样,如果您需要更改架构,只需更改hibernate.connection.url的值。