2016-11-29 6 views
0

org.hibernate.cfg.Configuration 클래스 유형 org.hibernate.mapping.PersistentClass의 객체를 포함하는 지도 클래스 특성이있다.Hibernate 5에서 org.hibernate.cfg.Configuration 아래에 있던 PersistentClass 객체의 맵은 어디에서 얻을 수 있습니까? 최대 절전 모드 3에서

Grails 애플리케이션 (커버 아래에 최대 절전 모드를 사용함)에서 org.hibernate.cfg.Configuration을 확장 한 클래스를 확장하고있었습니다.

for(PersistentClass pc : classes.values()) { 
    for(Iterator iterator = pc.getTable().getForeignKeyIterator(); iterator.hasNext();) { 
     ForeignKey fk = (ForeignKey) iterator.next();    
     iterator.remove();  
} 
} 

을 기본적으로, 특정 제 3 자 테이블에 대한 외부 키를 제거하고이 날지도 클래스로 누르고 다음과 같이 할 수있었습니다.

나는 Hibernate 5로 업그레이드하고 싶지만 새로운 Configuration 클래스에는 내가 의존하는 Map 클래스가 없다.

  1. 어떻게 외래 키를 제거 할 수 있도록 PersistentClass 객체의 맵을 가져 옵니까?

  2. 구성을 통해 더 이상 수행하지 않는 경우 영구 객체에 대한 액세스 권한을 얻으려면 어떻게해야합니까? 어떤 반에서?

enter image description here

이 도와주세요. 나는 붙어있다.

StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure(configFileURL).build(); 

그때 우리가 같은이 StandardServiceRegistry 인스턴스에서 메타 데이터 인스턴스를 얻을 수 있습니다 :

+0

[org.hibernate.cfg.Configuration.getClassMapping (className)] 메소드의 [Hibernate Migration from 4.3.x to 5.x] 가능한 복제본 (http://stackoverflow.com/questions/32780664/hibernate-migration-from) -4-3-x-to-5-x-for-method-org-hibernate-cfg-configuration) – JimmyB

+0

JimmyB 그것은 중복이 아닙니다. 두 가지 질문을 모두 읽으십시오. Hibernate 5에서 모든 PersistentClass 객체의 Map을 어떻게 얻을 수 있는지 알고 있습니까? – Viriato

+1

나에게는 복제본입니다. 일종의. 다른 질문에 대한 대답은 Hibernate로부터'MetadataImplementor'를 잡는 방법을 보여줍니다. 예를 들어, ['getEntityBindings()'] (https://docs.jboss.org/hibernate/orm/5.1/javadocs/org/hibernate/boot/Metadata.html#getEntityBindings)를 호출 할 수 있어야합니다. -)를 사용하여 모든 PersistentClass를 얻습니다. 너는 무엇을 더 필요로 하는가? – JimmyB

답변

0

난 우리가 StandardServiceRegistry 인스턴스를 얻을 아래와 같이한다 먼저 생각 후

Metadata metaData = new MetadataSources(standardRegistry).getMetadataBuilder().build(); 

, 우리가 얻을 수 있습니다 해당 메타 데이터 인스턴스의 모든 PersistentClasses (아래) :

Collection<PersistentClass> entityBindings = metadata.getEntityBindings(); 

이것이 당신이 필요로하는 것입니까?