2017-01-25 11 views
0

JPAで単一テーブル継承を使用しています。Spring BootとThymeleafでの単一テーブル継承

-Car
- E-カー
- ガソリン車

私thymeleafテンプレートで、私はテーブルを作成するためには、のために、それぞれを経由してスーパークラス(車)のリストにアクセス両方のサブクラスのオブジェクトを持ちます。

<tr th:each="car : ${cars}" 
th:class="${not car.isECar()} ? 'electricCar' : 'notECar'"> 

私は今、私は他の1に存在しないサブクラスのプロパティにアクセスしたいという、問題があります。

<td th:text="'kWh ' + ${car.kwh}" style="vertical-align: center;">1025 kWh</td> 

これは例外次スロー:

org.springframework.expression.spel.SpelEvaluationException:EL1008E:(POS 6):プロパティまたはフィールドを '...' 型のオブジェクトで見つけることができません。..

プロパティが存在する場合のみ、htmlタグをレンダリングする方法はありますか?すべての

まず、私はnullを返しスーパーカー、方法を書いた:

+0

試し番目:= "$ {!car.kwh = NULL}" – benkuly

+0

が@benkuly動作しない場合他のサブクラスではkwhが見つかりません:( – fr34kyy

答えて

2

[OK]を私は今、回避策を見つけました。
私のサブクラスのE-Carでは、適切な値を返すメソッドを上書きします。

今、すべての車がgetKWH(というメソッドを持っている)、私はそれを介してアクセスすることができます

<td th:text="${car.getKWH()} + ' kWh'" th:if="${car.getKWH()!=null}">2200 kWh</td> 
関連する問題