-
hibernate用注解 一对多 报Could not determine type for错误5
配置文件
hibernate.cfg.xml
<!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="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="show_sql">true</property>
<mapping class="tests.cn.com.taiji.sms.entiry.Book" />
<mapping class="tests.cn.com.taiji.sms.entiry.Student" />
</session-factory>
</hibernate-configuration>
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> 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<Book> getBook()
{
return book;
}
public void setBook(List<Book> 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<Book> listBook=new ArrayList<Book>();
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
目前还没有答案
相关推荐
当出现错误"Could not determine type for: java.util.Set"时,通常是因为缺少了关联配置或类型不匹配。确保在两个相关的类中都有相应的映射,并且类型与数据库字段类型一致。此外,注解的位置一致性也很重要,如...
UI框架对canvas进行分层 1.base为基础层,放基础界面,主游戏菜单、操作杆、小地图等; 2.main为主业务层,放全部业务界面,背包、榜单等 3.toast层,放吐司 4.loading层,放loading界面 使用方式: 1.在场景中挂上UIManager脚本,并在游戏启动时进行初始化,传入资源加载器 2.显示界面直接UIManager.ShowPanel<T>(),不需要其他操作 3.隐藏界面UIManager.ClosePanel()
IMG_1399.PNG
【毕业设计】java-springboot-vue教师工作量管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
python教程学习
【深圳来觅数据信息科技-2025研报】减产提价!多重因素影响,国内存储芯片逐步崛起.pdf
python学习资源
本协力服装厂服装生产管理系统设计目标是实现协力服装厂服装生产的信息化管理,提高管理效率,使得协力服装厂服装生产管理作规范化、科学化、高效化。 本文重点阐述了协力服装厂服装生产管理系统的开发过程,以实际运用为开发背景,基于Springboot框架,运用了Java编程语言和MYSQL数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了服装生产相关信息管理的重要功能。 本协力服装厂服装生产管理系统运行效果稳定,操作方便、快捷,界面友好,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的服装生产管理平台。 关键词:服装生产管理,Java编程语言,Springboot框架,MYSQL数据库
网络编程,资源和大家上学的时候的差不多,tcp
vmware虚拟机安装教程
【毕业设计】java-springboot-vue教师人事档案管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
【毕业设计-java】springboot-vue会员制医疗预约服务管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
比赛前开源题目
UniApp开发一个简单的记事本应用文字教程
内容概要:本文档详细介绍了C#编程语言的基础知识和高级特性的相关内容。首先阐述了C#语言的特点和应用场景,涵盖其简单、安全及面向对象三大优点。接着讲述了准备工作的关键步骤,重点提及了开发工具Visual Studio的安装以及推荐的经典书籍和学习资源。文档深入解析了C#基础语法的各个要素,包括数据类型、变量与常量、运算符、控制结构,并结合代码实例强化理解。面向对象编程部分,文档讲解了类与对象的概念,以及继承、多态和封装的原则,并附带具体示例说明,以便读者更容易理解面向对象的理念。此外,文档对比了.NET Framework和.NET Core两大框架的区别和优势,并介绍了一些常用的类库,使开发者在不同平台环境下都可以顺利开发高质量的软件。最后一章提供了一些建议和资源推荐,如参与开源项目、加入技术社区等,为学习者的成长之路指明方向。 适合人群:希望初次接触C#编程的人士、希望通过系统学习达到掌握C#的初级开发者,亦适用于有一定C#经验,想巩固和提升面向对象思想及相关技术的专业技术人员。 使用场景及目标:该文章可以帮助初学者建立完整的C#编程基础框架,快速上手机编程,并引导他们深入了解面向
仅供资料参考,YeeCOM移讯通DTU连接OneNet平台MQTT说明使用手册。
python学习一些项目和资源
python学习资源
【毕业设计-java】springboot-vue家具销售电商平台实现源码(完整前后端+mysql+说明文档+LunW).zip
python学习教程