我先使用 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架构部分编写我想要的任何内容,然后程序继续工作。
答案 0 :(得分:0)
由于您的实体类是从架构生成的:
/**
* Constante generated by hbm2java
*/
您只需删除表注释中的商品:
@Entity
@Table(name = "CONSTANTE")
public class Constante implements java.io.Serializable {
然后,就像您之前遇到的那样,如果您需要更改架构,只需更改hibernate.connection.url的值。