Как получить метаданные во время сборки сеанса фабрики - PullRequest
0 голосов
/ 08 февраля 2019

Использование Spring 4.3.4 и Hibernate 5.1.17

Я хочу знать, как изменить метаданные или получить метаданные отображения сущностей во время выполнения.Могу ли я расширить LocalSessionFactoryBean, getMetadata и изменить его для использования другой схемы?Все, что я хочу сделать, это, мне нужно заменить имя таблицы из schema2 на mock_schema2.

Как часть dbtest, мне нужно использовать другую схему вместо обычной схемы, которая используется в определении сущности.Когда я использую приведенное ниже определение сущности

    @ Table(name = “cluster”, schema = “schema1”)
    @ SecondaryTable(name = “Cluster”, schema = “schema2”, pkJoinColumns = @ PrimaryKeyJoinColumn(name = “clusterId”, referencedColumnName = “objid”))
    @ org.hibernate.annotations.Table(appliesTo = “Cluster”, optional = false)
    @ Entity
    @ OptimisticLocking(type = OptimisticLockType.DIRTY)
    @ DynamicUpdate
    public class Cluster implements Serializable {

    }

Hibernate внутренне генерирует запрос, как показано ниже

select
        this_.objid as objid1_0_0_,
        this_.name as name2_0_0_,
        this_.resourceKey as resource3_0_0_,
        this_.uuid as uuid4_0_0_,
        this_1_.healthStatus as healthSt1_2_0_,
        this_1_.lastSync as lastSync2_2_0_
    from
        schema1.cluster this_
    inner join
        schema2.Cluster this_1_
            on this_.objid=this_1_.clusterId;

В случае Dbtest я хочу запрос использовать mock_schema2.Cluster вместо schema2.Cluster .Я хочу знать, как это сделать без изменения определения сущности

https://vladmihalcea.com/how-to-get-access-to-database-table-metadata-with-hibernate-5/ По сути, я пытаюсь следовать пути, упомянутому в приведенном выше блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...