2012-03-15 7 views
0


私は、継承(1つのテーブル)で休止状態に関する質問はほとんどありません。
外部キーを抽象クラスにすることはできますか? - それを使用していない子供がいればどうなりますか?
車のメンバーは保護されるべきですか?
他のご意見をお寄せください!
ありがとうございました!ここでHibernateの注釈 - inharitanceの明確化

は一例です:

@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

ある「万一の車両のメンバーが保護されますか?」 - あなたは、あなたが取得する必要がありそうでない場合は、公共のゲッター/セッターなしを持っている場合> /公共取得せずに設定/その後、設定しますはい

抽象クラスのtablenameと他のクラスは異なります。通常継承クラスには@Table注釈がありません

+0

ありがとうございました.......! – user648026