나는 테이블 형식과 참조 키에 따라 2 개의 다른 테이블에서 데이터를 가져 오는 솔루션을 찾고 있는데, 다음 샘플 테이블 구조와 엔티티 클래스를 살펴보십시오.최대 절전 모드에서 가능합니까? 그리고 어떻게?
테이블
1**Type**
(ID, TableName // Value for TableName can be 'TableA' or 'TableB')
2**TableA**
(ID, NameForA)
3**TableB**
(ID, NameForB)
4**TableMain**
(ID, Name, TypeID (foreign key of Type table), DataID (can be reference of TableA or TableB))
엔티티 클래스 구조
Class Abstract Model{ int ID; } // Model is base class, holds data of ID field and is parent for all entity classes
Class Type extends Model{String TableName;}
Class TableA extends Model{String NameForA;}
Class TableB extends Model{String NameForB;}
Class TableMain extends Model{
String Name;
Type type;
Model data; // can be TableA class or TableB based on Type
}
내가 무엇을 찾고 있어요 것은 TableMain 클래스 필드 '데이터'가 TableA의 또는 TableB의 클래스의 객체가 될 수있다,있다, 그것은 결과로는 것 테이블 이름이 'TableA'이면 데이터가 TableA 클래스의 인스턴스가되거나 tableName이 'TableB'이면 데이터가 TableB의 인스턴스가됩니다.
나는 좋은 습관이 없다는 것을 알고 있지만 이미 큰 데이터베이스 구조를 가지고 있으며 변경할 수 없다. 그래서 이것이 제가 풀어야 할 유일한 방법입니다.
누구든지 절전 모드 또는 다른 방법으로 작동하도록 만드는 방법을 알려줍니다. 또는 자동으로 최대 절전 모드를 통해 데이터를 채울 수 있습니다.
감사합니다.
그러나 SQL inhirate 자바에 맞게 테이블 구조에만 있습니다! "모델"과 "유형"의 행 집합이 다릅니다. –
답장을 보내 주셔서 감사합니다. 그러나 오라클 데이터베이스가 있는데 변경할 수 없기 때문에 최대 절전 모드로 작동하게하고 싶습니다. –
오라클은 PostgreSQL (또는 Oracle과 같은 PostgreSQL)을 상속받을 수 있습니다. D –