TbComment 类和TbMyDiary 类之间是多对一的关系.
package com.hj.vo;
// default package
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;
import org.hibernate.annotations.Generated;
import org.jaxen.function.FalseFunction;
/**
* TbComment generated by MyEclipse - Hibernate Tools
*/
@Entity
@Table(name="tbComment") //如不写默认类名
public class TbComment implements java.io.Serializable {
// Fields 所有没有定义注解的属性等价于在其上面添加了@Basic注解
/**
*
*/
private static final long serialVersionUID = 8808366677482487429L;
private Integer mainid;
private String content;
private Date addTime;
private Integer type;
private TbMyDiary myDiary;
/** default constructor */
public TbComment() {
}
/** minimal constructor */
public TbComment(Integer mainid) {
this.mainid = mainid;
}
/** full constructor */
public TbComment(Integer mainid, String content, Date addTime, Integer type) {
this.mainid = mainid;
this.content = content;
this.addTime = addTime;
this.type = type;
// this.targetId = targetId;
}
// Property accessors
@Id @GeneratedValue
public Integer getMainid() {
return this.mainid;
}
public void setMainid(Integer mainid) {
this.mainid = mainid;
}
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
@Column(name="add_time",updatable=false,insertable=false)
public Date getAddTime() {
return this.addTime;
}
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
public Integer getType() {
return this.type;
}
public void setType(Integer type) {
this.type = type;
}
@ManyToOne
@JoinColumn(name="target_id")
public TbMyDiary getMyDiary() {
return myDiary;
}
public void setMyDiary(TbMyDiary myDiary) {
this.myDiary = myDiary;
}
}
package com.hj.vo;
// Generated Mar 1, 2008 12:07:56 AM by Hibernate Tools 3.2.0.CR1
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
/**
* TbMyDiary generated by hbm2java
*/
@Entity
public class TbMyDiary implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 5391171835504714756L;
private int mainid;
private String loginName;
private String title;
private String weather;
private String mood;
private String content;
private Date diarytime;
private Integer openLevel;
private Integer viewNum;
private Integer status;
private Set<TbComment> tbComments=new HashSet(0);
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public TbMyDiary() {
}
public TbMyDiary(int mainid) {
this.mainid = mainid;
}
public TbMyDiary(int mainid, int FUserid, String loginName, String title,
String weather, String mood, String content, Date diarytime,
Integer openLevel) {
this.mainid = mainid;
this.loginName = loginName;
this.title = title;
this.weather = weather;
this.mood = mood;
this.content = content;
this.diarytime = diarytime;
this.openLevel = openLevel;
}
@Id @GeneratedValue
public int getMainid() {
return this.mainid;
}
public void setMainid(int mainid) {
this.mainid = mainid;
}
public String getLoginName() {
return this.loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getWeather() {
return this.weather;
}
public void setWeather(String weather) {
this.weather = weather;
}
public String getMood() {
return this.mood;
}
public void setMood(String mood) {
this.mood = mood;
}
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
public Date getDiarytime() {
return this.diarytime;
}
public void setDiarytime(Date diarytime) {
this.diarytime = diarytime;
}
public Integer getOpenLevel() {
return this.openLevel;
}
public void setOpenLevel(Integer openLevel) {
this.openLevel = openLevel;
}
public Integer getViewNum() {
return viewNum;
}
public void setViewNum(Integer viewNum) {
this.viewNum = viewNum;
}
@OneToMany(mappedBy="myDiary")
public Set<TbComment> getTbComments() {
return tbComments;
}
public void setTbComments(Set<TbComment> tbComments) {
this.tbComments = tbComments;
}
}
在执行Session session=HibernateSessionFactory.getSession();时报如下异常.
%%%% Error Creating SessionFactory %%%%
org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.hj.vo.TbMyDiary.tbComments[com.hj.vo.TbComment]
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:1136)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at com.hj.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:63)
at com.hj.HibernateSessionFactory.getSession(HibernateSessionFactory.java:45)
at com.hj.dao.CommentDAO.insert(CommentDAO.java:21)
at com.hj.dao.CommentDAO.main(CommentDAO.java:14)
分享到:
相关推荐
《Hibernate3.2中文参考手册》是一本专为初学者设计的详尽指南,它涵盖了Hibernate框架的基础到高级特性,帮助开发者充分利用这个强大的对象关系映射(ORM)工具。Hibernate作为一个开源的Java库,简化了Java应用...
《Hibernate中文手册(3.2)》是一份详尽的指南,专为深入理解Hibernate ORM框架的用户设计。Hibernate是一个广泛使用的Java库,它允许开发者将数据库操作与应用程序的业务逻辑解耦,通过对象关系映射(ORM)技术实现...
Hibernate Annotations是Hibernate 3.2引入的新特性,它允许开发者通过Java 5的注解(Annotation)来配置实体类,替代了传统的XML配置文件。这种方式使得代码更清晰,更易于维护,同时也提高了开发效率。3.4.0.GA...
1. **注解替代XML映射**:在Hibernate 3.2及更高版本中,引入了Annotation支持,开发者可以直接在Java实体类上使用注解来定义持久化字段和关系,不再需要创建单独的`.hbm.xml`映射文件。 2. **依赖**:使用...
在应用配置中指定数据源、JPA供应商(如Hibernate)及相关的属性设置。 2.3 测试配置 编写测试代码验证JPA的配置是否生效,确保可以正常进行数据库操作。 2.4 环境搭建附表 列出完整的环境配置信息,如数据库连接...
- **捕获验证异常**:通过异常处理机制捕获并处理验证失败情况。 ##### 6.2 Hibernate Validator - **描述**:Hibernate Validator 是一款实现了 JSR 303/JSR 349 规范的验证框架。 - **集成**:将 Hibernate ...
- **一对多关联**:使用 @OneToMany 或 @JoinColumn 定义一对多关系。 - **多对多关联**:使用 @ManyToMany 定义多对多关系,通常需要通过中间表来实现。 #### 四、查询映射 ##### 4.1 JP-QL/HQL 查询 - **@Named...