2011-08-05 2 views
0

나는 그 인터페이스를 구현하는 3 개의 클래스와 인터페이스를 가지고 있는데, 나는 그것을 Hibernate 프레임 워크를 사용하여 데이터베이스에 저장해야한다. 문제는 3 개의 클래스 중 하나에 따라 다른 테이블을 생성해야한다는 것입니다. 예 :최대 절전 모드로 Java 인터페이스를 사용하는 방법은 무엇입니까?

interface Vehicle; 
class Truck; 
class Bus; 
class Motorbike; 

Vehicle vehicle = new Truck(); // In that case, Truck table should be generated 
session.save(vehicle); // In that case, Truck table should be generated 

Vehicle vehicle = new Bus(); 
session.save(vehicle); // In that case, Bus table should be generated 

Vehicle vehicle = new Motorbike(); 
session.save(vehicle); // In that case, Motorbike table should be generated 

주석으로 어떻게 처리 할 수 ​​있습니까? 어떤 도움을 주시면 감사하겠습니다. 감사합니다.

+0

최대 절전 모드가 설정된 다른 클래스를 사용할 때 사용하십시오. 아무것도 이상한 것처럼 보이지 않습니다. –

답변

2

Hibernate는 런타임에 클래스를 검사하므로 클래스 또는 인터페이스별로 객체를 참조하는지 여부는 중요하지 않습니다.

session.save()을 호출 할 때 테이블을 만들지 않습니다. 이미 존재하는 테이블에 레코드를 삽입합니다. 최대 절전 모드로 만든 테이블을 찾으려면 hibernate.hbm2ddl.auto

+1

"@MappedSuperclass"를 추상 클래스의 맨 위에 추가하여 해결했습니다. 고맙습니다. – prgrmmr

+1

좋아요, 당신은 내가 당신이 문제로 생각했던 것을 해결했습니다. 다음 번에는 질문 설명에 정확한 문제를 포함 시키십시오. – Bozho

관련 문제