![](/img/trans.png)
[英]How to use a generic method in Java to CRUD any table in MySQL, using Hibernate with Criteria, passing Table name and/or fields as a parameter?
[英]Java Hibernate @Table name as a parameter
我在名为Message
类中有一个表定义,带有休眠注释@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
其他所有内容都应该相同。
怎么做?
您可以使用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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.