2

ParameterGroupBean と GroupLevelBean の 2 つのエンティティ クラスがあります。

import javax.persistence.*;
import java.util.ArrayList;
import java.util.Collection;


@Entity
@Table(name="tbl_ParameterGroups")
public class ParameterGroupBean {


@Id
@GeneratedValue
private int ParameterGroupId;
private String ParameterGroupName;  
private Boolean Status;

@ManyToOne
@JoinColumn(name="LevelId")
private GroupLevelBean level = new GroupLevelBean();

public GroupLevelBean getLevel() {
    return level;
}

public void setLevel(GroupLevelBean level) {
    this.level = level;
}

@Id
@GeneratedValue
public int getParameterGroupId() {
    return ParameterGroupId;
}

public void setParameterGroupId(int parameterGroupId) {
    ParameterGroupId = parameterGroupId;
}

@Column(length=120) 
public String getParameterGroupName() {
    return ParameterGroupName;
}

public void setParameterGroupName(String parameterGroupName) {
    ParameterGroupName = parameterGroupName;
}

public Boolean getStatus() {
    return Status;
}

public void setStatus(Boolean Status) {
    this.Status = Status;
}
}

GroupLevelBean:

import javax.persistence.*;
import java.util.ArrayList;
import java.util.Collection;


@Entity
@Table(name="tbl_GroupLevel")
public class GroupLevelBean {

private int LevelId;
private String LevelName;
@OneToMany(mappedBy = "level")
private Collection<ParameterGroupBean> parameterGroups = new ArrayList<ParameterGroupBean>();


public Collection<ParameterGroupBean> getParameterGroups() {
    return parameterGroups;
}

public void setParameterGroups(Collection<ParameterGroupBean> parameterGroups) {
    this.parameterGroups = parameterGroups;
}


@Id
@GeneratedValue
public int getLevelId() {
    return LevelId;
}
public void setLevelId(int levelId) {
    LevelId = levelId;
}
@Column(length = 30)
public String getLevelName() {
    return LevelName;
}
public void setLevelName(String levelName) {
    LevelName = levelName;
}   
}

GroupLevelBean と ParameterGroupBean の関係は 1 対多です。セッション オブジェクトを作成しようとすると、例外が発生します。

org.hibernate.MappingException: タイプを特定できませんでした: com.vrde.daems.bean.GroupLevelBean、テーブル: tbl_ParameterGroups、列: [org.hibernate.mapping.Column(level)]

何が問題なのか誰にも教えてもらえますか?

4

1 に答える 1

6

@Id上記に@GeneratedValueJava永続化アノテーションを配置しているため:

@Id
@GeneratedValue
private int ParameterGroupId;

上記と同時に:

@Id
@GeneratedValue
public int getParameterGroupId() {
    return ParameterGroupId;
}

上に注釈を入れるだけで十分ですprivate int ParameterGroupId;

于 2012-11-30T16:37:53.460 に答える