2012-03-15 35 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