2012-03-15 4 views
0


상속 (단일 테이블)을 사용하여 최대 절전 모드에 관한 질문이 거의 없습니다.
외래 키를 추상 클래스에 둘 수 있습니까? - 아이가 사용하지 않으면 어떨까요?
차량 구성원을 보호해야합니까?
다른 의견을 남겨주세요!
감사합니다. 여기 Hibernate annotation - inharitance clarification

은 예입니다 : "외부 키는 추상 클래스에있을 수 있습니다"

@Entity 
@Table(name = "vehicles") 
@DiscriminatorColumn(name="type") 
@Inheritance(strategy=InheritanceType.SINGLE_TABLE) 
public abstract class Vehicle { 

@Id 
@Column(name = "plate" ,nullable = false) 
private String plate; 

@OneToMany(cascade=CascadeType.ALL) 
private List<EmissionInspection> insepections = new ArrayList<EmissionInspection>(); 

public List<EmissionInspection> getInsepections() { 
    return insepections; 
} 

... 
} 

@Entity 
@DiscriminatorValue("POST_OFFICE_TRUCK") 
@Table(name = "truck") 
public class PSTruck extends Vehicle { 

} 

@Entity 
@DiscriminatorValue("TRUCK") 
@Table(name = "truck") 
public class Truck extends Vehicle { 

    private insuranceDate; 
} 

@Entity 
@DiscriminatorValue("PRIVATE_CAR") 
@Table(name = "truck") 
public class PrivateCar extends Vehicle { 

    private insuranceDate;  
} 

답변

1

-> 예

"자녀가 사용하지 않는 경우?"은 -> 다음이 nullreference

입니다 "해야 차량 구성원이 보호는?"- 당신은 당신이 얻을 필요가 그렇지 않은 경우, 공공 게터/세터 없는이있는 경우>/공공 GET없이 설정/다음 설정

추상 클래스의 tablename과 다른 클래스는 다릅니다. 일반적으로 상속 클래스에는 @Table 주석이 없습니다

+0

감사합니다 .......! – user648026