RRというテーブルがあります。2つの値のセットがあります。私のテーブルは
CREATE TABLE "TSL_RR_CONFIGURATION"
(
"ID" NUMBER(19,0),
"TRK_TYPE" VARCHAR2(2 BYTE),
"MEASURE_SYSTEM" VARCHAR2(1 BYTE),
"MIN_LENGTH" NUMBER,
"MAX_LENGTH" NUMBER,
"MIN_WIDTH" NUMBER,
"MAX_WIDTH" NUMBER,
"MIN_HEIGHT" NUMBER,
"MAX_HEIGHT" NUMBER,
"MIN_WEIGHT" NUMBER,
"MAX_WEIGHT" NUMBER,
"LOCATION_ID" NUMBER(19,0),
"IDX" NUMBER DEFAULT 0,
"INSERTTIME" TIMESTAMP (6),
"UPDATETIME" TIMESTAMP (6),
CONSTRAINT "TSL_RR_CONFIGURATION_LOCA_FK1" FOREIGN KEY ("LOCATION_ID") REFERENCES "LOCATION" ("ID") ENABLE
)
Hibernateの1対多の関係の使用:以下は、リストをマップするための私のコードです
<list name="revRecov" table="TSL_RR_CONFIGURATION" cascade="all" access="field">
<key column="LOCATION_ID" />
<index column="idx" />
<one-to-many class="RevRecovery" />
</list>
スプリングフォームタグを使用してJSPフォームに表示する:
<c:forEach items="${location.revRecov}" var="item" varStatus="loop">
<c:choose>
<c:when test="${measureSys}">
<tr> <td><form:input path="revRecov[${loop.index}].trkType" /></td></tr>
<tr>
<td>Max Length:
<form:input path="revRecov[${loop.index}].maxLength" size="15" maxlength="14" />inches</td>
<td>Min Length:
<form:input path="revRecov[${loop.index}].minLength" size="15" maxlength="14" />inches</td>
</tr>
</c:when>
<c:otherwise>
<tr> <td><form:input path="revRecov[${loop.index}].trkType" /></td></tr>
<tr><td>Max Length:
<form:input path="revRecov[${loop.index}].maxLength" size="15" maxlength="14" />cm</td>
<td>Min Length:
<form:input path="revRecov[${loop.index}].minLength" size="15" maxlength="14" />cm</td></tr>
</c:otherwise>
</c:choose>
</c:foreach>
タグを使用<c:when test>
して、インチまたはcmで値を表示します。私のリストには次のような値があります
"97" "120" "5"
"12" "400" "1"
97の場合はパッケージとしてラベルを表示し、12の場合はパレットを表示する必要があります。検証しても問題が発生します。これは、両方の行の最大値と最小値のセットが異なるためです。
そのため、そのリストを2つの異なるリストにして、JSPに渡すことができれば、検証もできると考えていました。
それを達成するための最良のシナリオは何でしょうか?2つのリストに分割した場合、それらをデータベースに保存するときに問題になりますか?
何か提案は大歓迎ですか?
編集済み:私の場合、JSPのさまざまなセットの問題を解決しますが、それでも問題を検証し続けます。2行を超える場合、インデックスを使用してすべての行のJSPに表示することはできません。