我在类Message
中有一个表定义,带有hibernate注释@Table(name="message")
。
@Entity
@Table(name="message")
public class Message implements Serializable
所以我能够创建Message
个对象并将它们从java代码存储到数据库表message
中。
我想要告诉Message
对象应该使用哪个表名,例如:我想用Message(String tableName)
之类的参数创建它。然后将从该参数中使用表名注释,例如
@Entity
@Table(name=tableName)
public class Message implements Serializable
其他一切都应该是一样的。
怎么做?
答案 0 :(得分:0)
您可以使用NamingStrategies更改表名。
public class MyNamingStrategy extends DefaultNamingStrategy {
@Override
public String tableName(String tableName) {
return tableName;
}
}
然后使用如下。
SessionFactory sessionFactory;
Configuration config = new AnnotationConfiguration()
.configure("hibernate.cfg.xml")
.setNamingStrategy( new MyNamingStrategy () );
sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();