我有两个实体, Vehicle
和 Lorry
,卡车具有特殊属性maxWeight。这些实体具有自己的表格 - 车辆,带有参数idVehicle
,licensePlate
,amountKM
和 MAXWEIGHT 。在 -
<h:dataTable var="v" value="#{vehicleMB.allVehicle}">
<h:column headerClass="tableHeader">
<f:facet name="header">License plate</f:facet>
#{v.licensePlate}
</h:column>
<h:column headerClass="tableHeader">
<f:facet name="header">Max weight</f:facet>
#{*******maxWeight******}
</h:column>
</h:dataTable>
因为v.maxWeight
是未知的。方法getAllVehicle
只是从表中选择所有车辆。有任何提示吗?
卡车类:
@Entity
public class Lorry extends Vehicle {
private long maxWeight;
public long getMaxWeight() {
return maxWeight;
}
public void setMaxWeight(long maxWeight) {
this.maxWeight = maxWeight;
}
}
车辆课:
@Entity
public class Vehicle {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long idVehicle;
private String licensePlate;
private int amountKM;
@ManyToOne
Company company;
@OneToMany(mappedBy="vehicle")
List<Path> paths;
public List<Path> getPaths() {
return paths;
}
public void setPaths(List<Path> paths) {
this.paths = paths;
}
public long getIdVehicle() {
return idVehicle;
}
public void setIdVehicle(long idVehicle) {
this.idVehicle = idVehicle;
}
public String getLicensePlate() {
return licensePlate;
}
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (int) (idVehicle ^ (idVehicle >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Vehicle other = (Vehicle) obj;
if (idVehicle != other.idVehicle)
return false;
return true;
}
public void setLicensePlate(String licensePlate) {
this.licensePlate = licensePlate;
}
public int getAmountKM() {
return amountKM;
}
public void setAmountKM(int amountKM) {
this.amountKM = amountKM;
}
}
<h:outputText value="#{v.maxWeight}" rendered="#{v != null and v.class.simpleName eq 'Lorry'}"/>