Убедитесь, что вы используете доступ к полю, а не доступ к свойству (@Access (AccessType.FIELD), или добавьте аннотацию @Transient в метод getValue.

у отобразить универсальное поле в суперклассе с помощью Hibernate.

Моя мама класс:

@Entity
@Table(name = "ParameterValue")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "parameterType", discriminatorType = DiscriminatorType.STRING)
public abstract class ParameterValue<C>
{
    private C value;

    /* HELP NEEDED HERE */
    public C getValue()
    {
        return value;
    }

    public void setValue(C value)
    {
        this.value = value;
    }
}

Один подкласс:

@Entity
@DiscriminatorValue(value = "integer")
@AttributeOverride(name = "value", column = @Column(name = "intValue"))
public class IntegerParameterValue extends ParameterValue<Integer>
{
}

Как видите, я переопределяю поле значения, чтобы указать, какой столбец использовать в базе данных. Моя таблица ParameterValue состоит из нескольких столбцов, по одному для каждого типа.

CREATE TABLE `ParameterValue` (
    `intValue` int(11) DEFAULT NULL,
    `doubleValue` double DEFAULT NULL,
    `stringValue` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Но Hibernate жалуется, что:

ParameterValue.value has an unbound type and no explicit target entity. Resolve this Generic usage issue or set an explicit target attribute (eg @OneToMany(target=) or use an explicit @Type

Хорошо, но какова хорошая конфигурация для getValue в суперклассе? (Я положил комментарий с "ПОМОЩЬ НУЖНО ЗДЕСЬ")

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

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