Get the table name from the model in Hibernate

前端 未结 8 1889
名媛妹妹
名媛妹妹 2020-12-05 04:33

How do I get the table name for a model in Hibernate?

Apparently there used to be a getTableName() method in ClassMetadata, but it\'s been removed.

8条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-05 04:54

    It's a bit weird but it works:

    ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(pClassName);
    
    if (hibernateMetadata == null)
    {
        return;
    }
    
    if (hibernateMetadata instanceof AbstractEntityPersister)
    {
         AbstractEntityPersister persister = (AbstractEntityPersister) hibernateMetadata;
         String tableName = persister.getTableName();
         String[] columnNames = persister.getKeyColumnNames();
    }
    

提交回复
热议问题