Хранить объект класса в базе данных MySQL через Hibernate - PullRequest
1 голос
/ 04 декабря 2011

Я использую Hibernate версию 3.6.Я должен хранить Class экземпляр в базе данных (например, Integer.class), и, вероятно, я могу это сделать - NetBeans не показывает ошибку, как в случае Object.

Моя Groups таблица:

@Entity
public class Groups implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    private Class classOfGroup;

    public void setClassOfGroup(Class classOfGroup) {
        this.classOfGroup = classOfGroup;
    }

    public Class getClassOfGroup() {
        return classOfGroup;
    }

    private void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }
}

И AdditionalInformationGroup Таблица:

@Entity
public class AdditionalInformationGroup implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    private Class groupClass;
    private Boolean uniqueValue;

    public void setUniqueValue(Boolean uniqueValue) {
        this.uniqueValue = uniqueValue;
    }

    public Boolean getUniqueValue() {
        return uniqueValue;
    }

    public void setGroupClass(Class groupClass) {
        this.groupClass = groupClass;
    }

    public Class getGroupClass() {
        return groupClass;
    }

    private void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }
}

Когда я делаю это:

List<AdditionalInformationGroup> additionalInformationGroups = 
s.createCriteria(AdditionalInformationGroup.class)
.add(Restrictions.eq("groupClass", group.getClassOfGroup())).list();

я получаю исключение:

Exception in thread "AWT-EventQueue-0" org.hibernate.QueryException: Unsupported discriminator type null
    at org.hibernate.loader.criteria.CriteriaQueryTranslator.getTypedValue(CriteriaQueryTranslator.java:499)
    at org.hibernate.criterion.SimpleExpression.getTypedValues(SimpleExpression.java:71)
    at org.hibernate.loader.criteria.CriteriaQueryTranslator.getQueryParameters(CriteriaQueryTranslator.java:251)
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
    at Views.ConditionDialog.setFieldList(ConditionDialog.java:85)

Я проверялчто в моем экземпляре класса Groups нет нуля.У меня есть ошибка, или я не могу сохранить экземпляр Class через hibernate?

1 Ответ

1 голос
/ 03 марта 2017

Если предоставленный класс отображается в hibernate, вы столкнетесь с такой проблемой. Но если класс не отображается в hibernate, вы сможете успешно его сохранить.

JIRA уже поднял здесь . Есть некоторые обходные пути для того же, вы можете найти обходные пути в JIRA

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