помощь по проблеме отображения спящего режима ... приводит, пожалуйста! :) - PullRequest
0 голосов
/ 10 мая 2009

Хорошо, я порвал то, что у меня было, и перестраиваю, вот что мне нужно сделать.

У меня есть объект с именем Property:

Имя строки;

@ ManyToOne Тип EntityType;

??????? значение

Мне тоже нужно хранить значение, но в зависимости от типа это может быть либо строка, либо тип Double, либо ссылка на другой объект (класса type.getJavaClass ()).

Я пытался сделать это с наследованием всевозможными способами, но все еще нужно иметь возможность создавать новое свойство () и устанавливать для него значение null, пока не будет выбран тип, когда будет выбран соответствующий тип типа.

Что было бы лучше всего, если бы значение было типом Object (таким образом я мог бы поместить туда String, Double или type.getJavaClass (), но hibernate не позволил бы мне это сделать. *

Буду признателен за любые идеи или рекомендации относительно хорошего способа достижения этой цели! Спасибо, Joshua

1 Ответ

0 голосов
/ 11 мая 2009

Проблема в том, что Hibernate должен иметь возможность сопоставить его с базой данных, чтобы тип Object не работал.

Я бы порекомендовал вам указать значение типа String. Затем оберните вызовы «get» и «set», чтобы конечный абонент не знал об этом. Например:

public class Property
{

String name;

Enum Type;
String valueString;




public object getValue()
{
    if( getType() == Long )
    {

    return Long.valueOf( getStringValue() );
    }

    if( getType() == String )
    {
        return valueString;
    }

    .....

}

public void setValue( obj )
{
    if( obj instanceof Long )
    {
    setStringValue( obj.toString() )
        setType( Long ) 
    }
    ....

}

}

Что касается ссылки на другой объект, вы имеете в виду ссылку на другую таблицу? В этом случае я бы, вероятно, сделал отдельный столбец для каждой таблицы, чтобы вы могли позволить базе данных поддерживать ссылочную целостность. Затем вы можете просто улучшить getValue (), setValue (), чтобы получить соответствующую сущность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...