Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate и неизвестное значение дискриминатора 
:(
    Опции темы
barracuda477
Дата 22.12.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



Есть класс Parameter, есть подклассы этого класса, все инстантсы хранятся в одной таблице со стратегией "table per class hiearchy".
Это описано в соответствующем хибернейтовом хмл-ничке.

То есть, примено вот так

Код

<hibernate-mapping>
    <class name="com.mycompany.commons.bo.Parameter" table="parameter" discriminator-value="null">
        <id name="id" type="int">
            <column name="id" />
            <generator class="assigned" />
        </id>

        <discriminator column="shortname" />
...
...
          <subclass name="com.mycompany.commons.parameterslogic.SomeParameter" discriminator-value="Some" />


Всё отлично работает, пока хибернейту не встречается запись с дискриминатором, по которой подкласс неопределён: вылетает ексепшин

Exception in thread "main" org.hibernate.WrongClassException: Object with id: 49 was not of the specified subclass: com.mycompany.commons.bo.Parameter (Discriminator: XYZ)

Как сделать, чтобы в этом случае создавался просто родительский класс (com.mycompany.commons.bo.Parameter) ? 

Спасибо
PM MAIL   Вверх
_sten_
Дата 22.12.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 29.9.2006

Репутация: 3
Всего: 3



а можно классы Parameter и SomeParameter посмотреть?
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
barracuda477
Дата 23.12.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



можно. Тут на самом деле целая иерархия...

Код


// GENERATED FILE, DO NOT EDIT 
// Generated 9 лист 2008 20:31:27 by Hibernate Tools 3.2.2.GA

package com.mycompany.commons.bo.gen;

import com.mycompany.commons.bo.*;

import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;

/**
 * Parameter generated by hbm2java
 */
abstract public class ParameterGen {

    private int id;
    private String fullname;




Код

package com.mycompany.commons.bo;
import com.mycompany.commons.bo.gen.ParameterGen;

public class Parameter extends ParameterGen {
}


Код

package com.mycompany.commons.parameterslogic;

import com.mycompany.commons.bo.*;

abstract public class ParameterWithData extends Parameter {

    abstract public boolean isAcceptableValues(Data recievedData, Task task);
    
}


Код

package com.mycompany.commons.parameterslogic;

import com.mycompany.commons.bo.Task;

public class SomeParameter extends ParameterWithData {

    @Override
    public boolean isAcceptableValues(Data data, Task tas) {
        // TODO Auto-generated method stub
        return false;
    }

}

PM MAIL   Вверх
ivg
Дата 23.12.2008, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Попробуйте
Код

<hibernate-mapping>
    ...
        <discriminator column="shortname" force="true" />
...

PM MAIL   Вверх
barracuda477
Дата 24.12.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



спасибо, ivg

оно в доке было - надо было лучше порыться... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.