2012-03-15 34 views
0


我對繼承hibernate有幾個問題(單表),
外鍵是否可以在抽象類上? - 如果其中一個孩子不使用它?
車輛是否應該受到保護?
請分享任何其他想法!
謝謝!Hibernate註解 - 吸入說明

下面是一個例子:「能外鍵是在抽象類」

@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有

56,「車輛成員得到保護?」 - >如果你有公共的getter/setter 沒有,否則,如果你需要得到/不公開獲取設置/設置,那麼

抽象類的表名和其他類是不同的。通常繼承類沒有任何@Table註釋

+0

謝謝.......! – user648026 2012-03-16 01:34:48