2011-03-29 35 views
3

我無法找到我的錯誤在哪裏,我沒有映射我的類,但對我來說,一切都應該很好..但不是。休眠:使用@OneToMany或@ManyToMany定位未映射的類

有人可以幫我找到它嗎?

org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.bytecode.entities.Event.categorytagit[com.bytecode.entities.Categorytagit] 
    at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068) 
    at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600) 
    at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541) 
    at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43) 
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130) 
    at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286) 
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859) 

    package com.bytecode.entities; 
// Generated 29/03/2011 12:15:48 by Hibernate Tools 3.2.1.GA 

import java.util.Date; 
import java.util.HashSet; 
import java.util.Set; 
import javax.persistence.CascadeType; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import static javax.persistence.GenerationType.IDENTITY; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.JoinTable; 
import javax.persistence.ManyToMany; 
import javax.persistence.ManyToOne; 
import javax.persistence.OneToMany; 
import javax.persistence.Table; 
import javax.persistence.Temporal; 
import javax.persistence.TemporalType; 

/** 
* Event generated by hbm2java 
*/ 
@Entity 
@Table(name = "event", catalog = "tagit") 
public class Event implements java.io.Serializable { 

    private Integer id; 
    private User user; 
    private String name; 
    private Date iniEventDate; 
    private Date iniInscDate; 
    private Date endInscDate; 
    private String urlPicture; 
    private Integer idEventoFacebook; 
    private String description; 
    private Integer places; 
    private Integer lottery; 
    private String street; 
    private String city; 
    private Integer idMainEvent; 
    private Set<Tag> tags = new HashSet<Tag>(0); 
    private Set<Presentparticipants> presentparticipantses = new HashSet<Presentparticipants>(0); 
    private Set<User> users = new HashSet<User>(0); 
    private Set<Categorytagit> categorytagit = new HashSet<Categorytagit>(0); 

    public Event() { 
    } 

    public Event(User user, String name, Date iniEventDate, String description, String street, String city) { 
     this.user = user; 
     this.name = name; 
     this.iniEventDate = iniEventDate; 
     this.description = description; 
     this.street = street; 
     this.city = city; 
    } 

    public Event(User user, String name, Date iniEventDate, Date iniInscDate, Date endInscDate, String urlPicture, Integer idEventoFacebook, String description, Integer places, Integer lottery, String street, String city, Integer idMainEvent, Set<Tag> tags, Set<Presentparticipants> presentparticipantses, Set<User> users, Set<Categorytagit> categorytagit) { 
     this.user = user; 
     this.name = name; 
     this.iniEventDate = iniEventDate; 
     this.iniInscDate = iniInscDate; 
     this.endInscDate = endInscDate; 
     this.urlPicture = urlPicture; 
     this.idEventoFacebook = idEventoFacebook; 
     this.description = description; 
     this.places = places; 
     this.lottery = lottery; 
     this.street = street; 
     this.city = city; 
     this.idMainEvent = idMainEvent; 
     this.tags = tags; 
     this.presentparticipantses = presentparticipantses; 
     this.users = users; 
     this.categorytagit = categorytagit; 
    } 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "id", unique = true, nullable = false) 
    public Integer getId() { 
     return this.id; 
    } 

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

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "idOrganizer", nullable = false) 
    public User getUser() { 
     return this.user; 
    } 

    public void setUser(User user) { 
     this.user = user; 
    } 

    @Column(name = "name", nullable = false, length = 55) 
    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "iniEventDate", nullable = false, length = 19) 
    public Date getIniEventDate() { 
     return this.iniEventDate; 
    } 

    public void setIniEventDate(Date iniEventDate) { 
     this.iniEventDate = iniEventDate; 
    } 

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "iniInscDate", length = 19) 
    public Date getIniInscDate() { 
     return this.iniInscDate; 
    } 

    public void setIniInscDate(Date iniInscDate) { 
     this.iniInscDate = iniInscDate; 
    } 

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "endInscDate", length = 19) 
    public Date getEndInscDate() { 
     return this.endInscDate; 
    } 

    public void setEndInscDate(Date endInscDate) { 
     this.endInscDate = endInscDate; 
    } 

    @Column(name = "urlPicture") 
    public String getUrlPicture() { 
     return this.urlPicture; 
    } 

    public void setUrlPicture(String urlPicture) { 
     this.urlPicture = urlPicture; 
    } 

    @Column(name = "idEventoFacebook") 
    public Integer getIdEventoFacebook() { 
     return this.idEventoFacebook; 
    } 

    public void setIdEventoFacebook(Integer idEventoFacebook) { 
     this.idEventoFacebook = idEventoFacebook; 
    } 

    @Column(name = "description", nullable = false, length = 65535) 
    public String getDescription() { 
     return this.description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    @Column(name = "places") 
    public Integer getPlaces() { 
     return this.places; 
    } 

    public void setPlaces(Integer places) { 
     this.places = places; 
    } 

    @Column(name = "lottery") 
    public Integer getLottery() { 
     return this.lottery; 
    } 

    public void setLottery(Integer lottery) { 
     this.lottery = lottery; 
    } 

    @Column(name = "street", nullable = false) 
    public String getStreet() { 
     return this.street; 
    } 

    public void setStreet(String street) { 
     this.street = street; 
    } 

    @Column(name = "city", nullable = false, length = 55) 
    public String getCity() { 
     return this.city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    @Column(name = "idMainEvent") 
    public Integer getIdMainEvent() { 
     return this.idMainEvent; 
    } 

    public void setIdMainEvent(Integer idMainEvent) { 
     this.idMainEvent = idMainEvent; 
    } 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "event") 
    public Set<Tag> getTags() { 
     return this.tags; 
    } 

    public void setTags(Set<Tag> tags) { 
     this.tags = tags; 
    } 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "event") 
    public Set<Presentparticipants> getPresentparticipantses() { 
     return this.presentparticipantses; 
    } 

    public void setPresentparticipantses(Set<Presentparticipants> presentparticipantses) { 
     this.presentparticipantses = presentparticipantses; 
    } 

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    @JoinTable(name = "eventuser", catalog = "tagit", joinColumns = { 
     @JoinColumn(name = "idEvent", nullable = false, updatable = false)}, inverseJoinColumns = { 
     @JoinColumn(name = "idUser", nullable = false, updatable = false)}) 
    public Set<User> getUsers() { 
     return this.users; 
    } 

    public void setUsers(Set<User> users) { 
     this.users = users; 
    } 

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    @JoinTable(name = "eventcategory", catalog = "tagit", joinColumns = { 
     @JoinColumn(name = "idEvent", nullable = false, updatable = false)}, inverseJoinColumns = { 
     @JoinColumn(name = "idCategory", nullable = false, updatable = false)}) 
    public Set<Categorytagit> getCategorytagit() { 
     return this.categorytagit; 
    } 

    public void setCategorytagit(Set<Categorytagit> categorytagit) { 
     this.categorytagit = categorytagit; 
    } 
} 

我hibernate.cfg:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql:xxxx</property> 
    <property name="hibernate.connection.username">xxxxxxxxx</property> 
    <property name="hibernate.connection.password">xxxxxxxxxxxx</property> 
    <property name="hibernate.current_session_context_class">thread</property> 
    <!-- Connection pool C3P0 --> 
    <property name="hibernate.c3p0.acquire_increment">2</property> 
    <property name="hibernate.c3p0.min_size">5</property> 
    <property name="hibernate.c3p0.max_size">100</property> 
    <property name="hibernate.c3p0.timeout">20</property> 
    <property name="hibernate.c3p0.max_statements">50</property> 
    <property name="hibernate.c3p0.idle_test_period">60</property> 
    <!-- To show sql output on the screen --> 
    <property name="hibernate.show_sql">true</property> 
    <property name="hibernate.format_sql">true</property> 

    <!-- Mapping the entities --> 
    <mapping class="com.bytecode.entities.Categorytagit"/> 
    <mapping class="com.bytecode.entities.Likes"/> 
    <mapping class="com.bytecode.entities.Categoryfacebook"/> 
    <mapping class="com.bytecode.entities.Accountconfirmation"/> 
    <mapping class="com.bytecode.entities.User"/> 
    <mapping class="com.bytecode.entities.Tag"/> 
    <mapping class="com.bytecode.entities.PresentparticipantsId"/> 
    <mapping class="com.bytecode.entities.Company"/> 
    <mapping class="com.bytecode.entities.Event"/> 
    <mapping class="com.bytecode.entities.Presentparticipants"/> 
    </session-factory> 
</hibernate-configuration> 

UPDATE:

package com.bytecode.entities; 
// Generated 29/03/2011 12:15:48 by Hibernate Tools 3.2.1.GA 

import java.util.HashSet; 
import java.util.Set; 
import javax.persistence.CascadeType; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import static javax.persistence.GenerationType.IDENTITY; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.JoinTable; 
import javax.persistence.ManyToMany; 
import javax.persistence.OneToMany; 
import javax.persistence.Table; 

/** 
* Categorytagit generated by hbm2java 
*/ 
@Entity 
@Table(name = "categorytagit", catalog = "tagit") 
public class Categorytagit implements java.io.Serializable { 

    private Integer id; 
    private String name; 
    private Set<Likes> likeses = new HashSet<Likes>(0); 
    private Set<Categoryfacebook> categoryfacebooks = new HashSet<Categoryfacebook>(0); 
    private Set<Event> events = new HashSet<Event>(0); 

    public Categorytagit() { 
    } 

    public Categorytagit(String name) { 
     this.name = name; 
    } 

    public Categorytagit(String name, Set<Likes> likeses, Set<Categoryfacebook> categoryfacebooks, Set<Event> events) { 
     this.name = name; 
     this.likeses = likeses; 
     this.categoryfacebooks = categoryfacebooks; 
     this.events = events; 
    } 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "id", unique = true, nullable = false) 
    public Integer getId() { 
     return this.id; 
    } 

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

    @Column(name = "name", nullable = false, length = 55) 
    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "categorytagit") 
    public Set<Likes> getLikeses() { 
     return this.likeses; 
    } 

    public void setLikeses(Set<Likes> likeses) { 
     this.likeses = likeses; 
    } 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "categorytagit") 
    public Set<Categoryfacebook> getCategoryfacebooks() { 
     return this.categoryfacebooks; 
    } 

    public void setCategoryfacebooks(Set<Categoryfacebook> categoryfacebooks) { 
     this.categoryfacebooks = categoryfacebooks; 
    } 

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    @JoinTable(name = "eventcategory", catalog = "tagit", joinColumns = { 
     @JoinColumn(name = "idCategory", nullable = false, updatable = false)}, inverseJoinColumns = { 
     @JoinColumn(name = "idEvent", nullable = false, updatable = false)}) 
    public Set<Event> getEvents() { 
     return this.events; 
    } 

    public void setEvents(Set<Event> events) { 
     this.events = events; 
    } 
} 
+0

getCategorytagit是一個實體還是一個普通的POJO? – karakuricoder 2011-03-29 16:35:13

+0

@karakuricoder是一個實體,因爲我在我的數據庫中有一個表categorytagit。 – 2011-03-29 16:42:15

+0

擁有一個表和一個類與擁有一個實體是不一樣的 - 你需要通過xml配置文件中的@Entity註釋或舊式實體映射來告訴Hibernate該類是一個實體。 – karakuricoder 2011-03-29 16:45:39

回答

3
@ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "idOrganizer", nullable = false) 
    public User getUser() { 
     return this.user; 
    } 

我認爲你缺少目標實體類,以配合您的列。

@ManyToOne(targetEntity = User.class) 
相關問題