Get the table name from the model in Hibernate

前端 未结 8 1869
名媛妹妹
名媛妹妹 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:45

    You can get every tables name in your project with this function :

    public Set getTablesName() {
        Set names = new HashSet<>();
        SessionFactory sessionFactory = emf.unwrap(SessionFactory.class);
    
        Map classMetadataMap = sessionFactory.getAllClassMetadata();
        for (ClassMetadata classMetadata : classMetadataMap.values()) {
            AbstractEntityPersister aep = (AbstractEntityPersister) classMetadata;
            String tableName = aep.getTableName();
            if (StringUtils.isBlank(tableName) || StringUtils.containsWhitespace(tableName)) {
                continue;
            }
            names.add(tableName);
        }
        return names;
    }
    

提交回复
热议问题