could not determine type for com.mysql.jdbc_hibernate用注解 一对多 报Could not determine type for错误...

配置文件

hibernate.cfg.xml

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

jdbc:mysql://localhost:3306/test

root

root

org.hibernate.dialect.MySQLDialect

com.mysql.jdbc.Driver

true

Student.java

package tests.cn.com.taiji.sms.entiry;

import java.util.ArrayList;

import java.util.List;

import javax.persistence.CascadeType;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.OneToMany;

import javax.persistence.Table;

import tests.cn.com.taiji.sms.entiry.Book;

@Entity

@Table(name="stuent")

public class Student

{

@Id

@Column(name="id")

@GeneratedValue(strategy=GenerationType.AUTO)

private int id;

private String memo;

private String name;

private List book;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

@Column(name="meno")

public String getMemo() {

return memo;

}

public void setMemo(String memo) {

this.memo = memo;

}

@Column(name="name")

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@OneToMany(mappedBy="student",cascade=CascadeType.ALL,fetch=FetchType.LAZY)

public List getBook()

{

return book;

}

public void setBook(List book)

{

this.book = book;

}

}

BOOK.java

package tests.cn.com.taiji.sms.entiry;

import javax.persistence.CascadeType;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;

import javax.persistence.Table;

@Entity

@Table(name="zqBook")

public class Book

{

@Id

@Column(name="id")

@GeneratedValue(strategy=GenerationType.AUTO)

private int id;

private String title;

private Student student;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

@Column(name="title")

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

@ManyToOne(cascade=CascadeType.REFRESH,optional=false)

@JoinColumn(name="stu_id",referencedColumnName="id")

public Student getStudent() {

return student;

}

public void setStudent(Student student) {

this.student = student;

}

}

StudentBookManager

package tests.cn.com.taiji.mhsms.manager;

import java.util.ArrayList;

import java.util.List;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import tests.cn.com.taiji.mhsms.web.BasicSessionFactory;

import tests.cn.com.taiji.sms.entiry.Book;

import tests.cn.com.taiji.sms.entiry.Student;

public class StudentBookManager

{

public static void main(String[] args)

{

Student student=new Student();

Book book1=new Book();

Book book2=new Book();

student.setName("王11");

List listBook=new ArrayList();

book1.setTitle("英语");

book2.setTitle("语文");

book1.setStudent(student);

book2.setStudent(student);

listBook.add(book1);

listBook.add(book2);

student.setBook(listBook);

Session session=null;

Transaction tx=null;

try

{

SessionFactory sessionFactory=BasicSessionFactory.sessionFactory;

session=sessionFactory.openSession();

tx=session.beginTransaction();

tx.begin();

session.save(student);

tx.commit();

}catch(Exception e)

{

e.printStackTrace();

}

finally

{

//session.close();

}

}

}

公共类:

BasicSessionFactory

package tests.cn.com.taiji.mhsms.web;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;

public class BasicSessionFactory

{

public static SessionFactory sessionFactory;

static

{

sessionFactory=new AnnotationConfiguration().configure("/hibernate/hibernate.cfg.xml").buildSessionFactory();///注意是AnnotationConfiguration,而不是Configuration

}

}

--------------------------------

在运行StudentBookManager时,出现

Exception in thread "main" java.lang.ExceptionInInitializerError

at tests.cn.com.taiji.mhsms.manager.StudentBookManager.main(StudentBookManager.java:39)

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, at table: stuent, for columns: [org.hibernate.mapping.Column(book)]

自己试了试将,将标注写到字段上就不会出现这些问题!

我们现在做的工程,就完全可以写在get方法上,请各位高人给指点一下为啥不能写在get方法上呢?自己从网上搜了一下,说必须要么全部写在字段上,要么全部写在get 方法上,但我的这个都是写在了get方法上,为什么还是不行呢?

解决方案:

自己试了近两天,终于将问题找出来了,在一个实体文件中,注解要么全部放在字段上,要么全部放在get方法上,不能混合使用!

2010年8月26日 15:32

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值