【问题标题】:Java Hibernate @Table name as a parameterJava Hibernate @Table 名称作为参数
【发布时间】:2016-07-12 06:35:55
【问题描述】:

我在名为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

其他的都应该一样。

怎么做?

【问题讨论】:

    标签: java database hibernate parameters


    【解决方案1】:

    您可以使用 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多