0

I have two entities, Vehicle and Lorry, lorry have special property maxWeight. These entities have own Table - Vehicle, with parameters idVehicle,licensePlate,amountKM and maxWeight. How i can call this parameter during -

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

becouse v.maxWeight is unknown. Method getAllVehicle just selects all vehicles from table. Any tips ?

Lorry class :

@Entity
public class Lorry extends Vehicle {
    private long maxWeight;

    public long getMaxWeight() {
        return maxWeight;
    }

    public void setMaxWeight(long maxWeight) {
        this.maxWeight = maxWeight;
    }
}

Vehicle class :

@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;
    }
}
Neil Stockton
  • 11,383
  • 3
  • 34
  • 29
Lukáš Unzeitig
  • 439
  • 8
  • 23

1 Answers1

1
<h:outputText value="#{v.maxWeight}" rendered="#{v != null and v.class.simpleName eq 'Lorry'}"/>
diufanman
  • 201
  • 1
  • 8