операции над отдельной константой перечисления индивидуально (однако вы можете иметь разные реализации фиксированного набора операций). Но я не хочу звучать догматично - возможно, я просто упускаю что-то важное в вашем особом сценарии.

я есть абстрактный классExample и конкретные подклассы, чтобы согласиться с этим. Я использовал дискриминатор для извлечения данныхвне базы данных, вот так:

<resultMap id="ExampleResultMap" class="Example">
    <discriminator column="stateCode" javaType="java.lang.String">
        <subMap value="AL" resultMap="AlabamaStateResultMap"/>
        <subMap value="AR" resultMap="ArkansasStateResultMap"/>
        [...]
    </discriminator>
</resultMap>

<resultMap extends="ExampleResultMap" 
           id="AlabamaStateResultMap"
           class="AlabamaState"/>
<resultMap extends="ExampleResultMap" 
           id="ArkansasStateResultMap"
           class="ArkansasState"/>
[...]

Таким образом, у меня естьAlabamaState объект (подкласс абстрактногоExample объект) без каких-либо атрибутов на него. Это надумано, но суть в том, что у меня нет атрибута, который бы однозначно определял тип объекта - и я бы не стал, если бы не этот случай.

(Запись: Классы не пусты, ониповеденческийтак что рефакторинг их из существования не вариант.)

Как мне сохранить его обратно в базу данных?

В идеале было быDiscriminator заParameterMapс, но, кажется, не один.

Насколько я могу судить, есть ряд нежелательных решений, среди которых:

Откажитесь и добавьте метод "getType ()" ко всем моим подклассам, который возвращает статическую строку. В этом случае,AL, (Обратите внимание, что я изо всех сил старался избежать этого во всем моем коде, поэтому наличие = OOD-поражение).Создайте объект «DB», который будет точно таким же, как мой большой, сложный объект, но в нем также есть дополнительная строка, говорящая «О, кстати, мой ТИП - АЛ».Извлеките все 20 атрибутов, которые я хочу сохранить в HashMap перед вставкой объекта.Некоторые другие сумасшествия, такие как использование toString () или что-то, чтобы выручить меня.

Скорее всего, я выберу первый вариант, но он кажется довольно смешным, не так ли? Если iBatis может создать его, разве он не сможет его сохранить? Что мне действительно нужно, это дискриминатор для вставки.

Мне не повезло, или я просто упускаю из виду что-то очевидное?

Ответы на вопрос(0)

Ваш ответ на вопрос