Использование 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/ По сути, я пытаюсь следовать пути, упомянутому в приведенном выше блоге.