为什么Hibernate没有将我的课程映射到一对多关系?

时间:2016-02-23 23:03:56

标签: java mysql hibernate criteria

这是异常:org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany定位未映射的类:com.org.GeopoliticaRD.models.Provincia.municipios [com.org.GeopoliticaRD.models.Municipio]

            @Entity
            @Table(name = "provincias")
            public class Provincia implements Serializable {
                @Column(name = "nombre")
                private String Nombre;
                private static final long serialVersionUID = 1L;

                @Id
                @GeneratedValue(strategy = GenerationType.IDENTITY)
                @Column(name = "provincia_id")
                private long id;


                @OneToMany(fetch=FetchType.LAZY)
                private Set<Municipio> municipios;


                public String getNombre() {
                    return Nombre;
                }

                public void setNombre(String nombre) {
                    Nombre = nombre;
                }

                public long getId() {
                    return id;
                }

                public void setId(long id) {
                    this.id = id;
                }

                public Set<Municipio> getMunicipios() {
                    return municipios;
                }

                public void setMunicipios(Set<Municipio> municipios) {
                    this.municipios = municipios;
                }

            }

            @Entity
            @Table(name = "municipios")
            public class Municipio implements Serializable {

                @Column(name = "nombre")
                private String nombre;

                @Id
                @GeneratedValue(strategy = GenerationType.IDENTITY)
                @Column(name = "municipio_id")
                private long id;

                private static final long serialVersionUID = 1L;

                @ManyToOne
                @JoinColumn(name = "provincia_id")
                private Provincia provincia;

                public Provincia getProvincia() {
                    return provincia;
                }

                public void setProvincia(Provincia provincia) {
                    this.provincia = provincia;
                }

                public String getNombre() {
                    return nombre;
                }

                public void setNombre(String nombre) {
                    this.nombre = nombre;
                }

                public long getId() {
                    return id;
                }

                public void setId(long id) {
                    this.id = id;
                }

                public boolean equals(Object obj) {
                    if (obj == null)
                        return false;
                    if (!this.getClass().equals(obj.getClass()))
                        return false;

                    Municipio obj2 = (Municipio) obj;
                    if ((this.id == obj2.getId()) && (this.nombre.equals(obj2.getNombre()))) {
                        return true;
                    }
                    return false;
                }

                public int hashCode() {
                    int tmp = 0;
                    tmp = (id + this.getNombre()).hashCode();
                    return tmp;
                }
            }

这是HibernateConfig:

    <hibernate-configuration>
     <session-factory name="Factory">
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/geopolitica</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.connection.password"/>
      <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
      <property name="hibernate.connection.autocommit">true</property>
      <mapping class="com.org.GeopoliticaRD.models.Provincia"/>
      <mapping class="com.org.GeopoliticaRD.models.Municipio"/>
      <mapping class="com.org.GeopoliticaRD.models.Distrito"/>
     </session-factory>
    </hibernate-configuration>

1 个答案:

答案 0 :(得分:0)

您还必须在mappedBy

中添加@OneToMany
@OneToMany(fetch=FetchType.LAZY, mappedBy="provincia")