【问题标题】:One To Many Relation in Hibernate / JPAHibernate / JPA中的一对多关系
【发布时间】:2012-07-03 09:35:52
【问题描述】:

我是 hibernate 的新手,我使用两个具有人和部分但我能够关联它们的类,我在线程“main”org.hibernate.AnnotationException 中变得像异常:使用 @OneToMany 或 @ManyToMany 以未映射的类为目标: in.quadra.apps.Profile.Sections[in.quadra.apps.Section]

Person.java

package in.quadra.apps;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="Profile")
public class Profile {

    @Id
    @GeneratedValue
    @Column(name="Profile_ID")
    private Long ProfileId;

    @Column(name="Profile_NAME")
    private String ProfileName;

    @OneToMany(mappedBy="Profile")
    private Set<Section> Sections;

    public Long getProfileId() {
        return ProfileId;
    }

    public void setProfileId(Long profileId) {
        ProfileId = profileId;
    }

    public String getProfileName() {
        return ProfileName;
    }

    public void setProfileName(String profileName) {
        ProfileName = profileName;
    }

    public Set<Section> getSections() {
        return Sections;
    }

    public void setSections(Set<Section> sections) {
        Sections = sections;
    }

}

Section.Java

package in.quadra.apps;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="Profile")
public class Profile {

    @Id
    @GeneratedValue
    @Column(name="Profile_ID")
    private Long ProfileId;

    @Column(name="Profile_NAME")
    private String ProfileName;

    @OneToMany(mappedBy="Profile")
    private Set<Section> Sections;

    public Long getProfileId() {
        return ProfileId;
    }

    public void setProfileId(Long profileId) {
        ProfileId = profileId;
    }

    public String getProfileName() {
        return ProfileName;
    }

    public void setProfileName(String profileName) {
        ProfileName = profileName;
    }

    public Set<Section> getSections() {
        return Sections;
    }

    public void setSections(Set<Section> sections) {
        Sections = sections;
    }

}

main.java

package in.quadra.apps;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Main123 {
    public static void main(String ar[]){
        SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
        Session session=sessionFactory.openSession();

        session.beginTransaction();
        Profile p= new Profile();
        p.setProfileName("Srikanth");

        Section s1= new Section();
        s1.setSectionName("Names");
        s1.setProfileId(p);

        Section s2= new Section();
        s2.setProfileId(p);
        s2.setSectionName("Address");

        session.save(p);
//      session.save(s1);
//      session.save(s2);
        session.getTransaction().commit();
        session.close();
    }

}

【问题讨论】:

  • 您需要向您展示 Section 类,否则我们无法判断问题所在
  • 您应该修复该代码,您的 Person、java 和您的 Section.java 都定义了公共类 Profile,这是不正确的。另外:你想定义什么关系?

标签: java hibernate jpa


【解决方案1】:

Section 类上可能缺少@Entity。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多