enum プロパティを含む POJO があります。
[Speed.java]
public class SpeedEntry implements Serializable {
[...]
private int idSpeed;
private SpeedStatus status; // enum Property
[...]
[SpeedStatus.java]
public enum SpeedStatus {
[...]
VALID(1), INVALID(2), UNKNOWN(0); // Possible values.
private int value;
// Default constructor
private SpeedStatus(final int pValue) {
this.value = pValue;
}
[...]
そして、Speed オブジェクトを格納および取得し、そのプロパティを通常どおり MyBatis で埋めたいと思います。SpeedStatus に割り当てられた列はINT(11)として作成されました。
この場合、INSERTを実行すると、次のように内部値プロパティに直接アクセスすることになります。
#{status.value}
ただし、オブジェクトを取得し、データベースに格納されている整数からその列挙値を取得することは、オブジェクトを挿入するほど簡単ではありませんでした。運が悪かったので、resultMapを使用してみました:
[speedMapper.xml]
<resultMap id="speedMap" type="Speed">
<result property="idSpeed" column="idSpeed" />
<result column="status" property="status.value"
typeHandler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
</resultMap>
だから...私が探しているものを達成することは可能ですか? そこに簡単な明確な例はありますか?
最良の代替手段は何ですか? データベースに格納されている型を "enum" に変更する必要がありますか?
前もって感謝します。