gpt4 book ai didi

java - 通过 Hibernate 在 MySQL 数据库中存储 Class 对象

转载 作者:行者123 更新时间:2023-11-29 00:51:32 25 4
gpt4 key购买 nike

我使用 Hibernate 3.6 版。我必须在数据库中存储 Class 实例(例如 Integer.class)也许我可以做到 - NetBeans 不会像 Object 那样显示错误。

我的表:

@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 类实例中没有 null。我这里有错误吗,或者我无法通过 hibernate 存储 Class 的实例?

最佳答案

如果提供的类在 hibernate 中映射,您将面临此类问题。但是,如果该类未映射到 hibernate 中,您将能够成功存储它。

JIRA 已经提出 here .同样也有一些解决方法,您可以在 JIRA 中找到解决方法

关于java - 通过 Hibernate 在 MySQL 数据库中存储 Class 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com