为了账号安全,请及时绑定邮箱和手机立即绑定
新接触hibernate的童鞋,可以尝试先用xml配置去写,再来看这个视频就好很多了。
主表 没有外键
有外键的叫子表
友情提示:
属性注解时 :注解既可以写在私有成员变量前,也可以写在getXXX()方法前.
但需要注意的是你只能选择其中一种方式,不能两种方式混合使用,会导致注解失效(亲测)

两者结果相同,但后者效率相对较高
@Entity ,@Table,@Emabeddable 类注解实例(可运行)
http://files.cnblogs.com/files/lt123/hib_anno3.rar
如果不设置mappedBy就会生成四张表,也就是双方都会以自己为维护方,各生成一张以自己为主的表!!
我的居然生成了四张表,太尴尬了,我都不知道另一张怎么来的
我把@many2many 和@JoinTable(name="student_teacher",joinColumns={@JoinColumn(name="sid")},inverseJoinColumns={@JoinColumn(name="tid")})放到get方法之前会出现MappingException,放在private Set 属性那里问题解决
按理来说保存班级的时候就会保存Set集合,而集合中保存有学生,并且级联操作cascade设置的ALL,这样不管是增删改查都会自动保存学生!!
many2one@JoinColumn(name = "",referencedColumnName = "")!name = 外键在“多”的一方表中的字段名,referencedColumnName= 引用的外键在其类中的属性名字!!或者“一”的一方的主键字段名(“一”的一方在主键属性指定的@GeneratedValue和@GenericGenerator设置的名字好像没有作用),以上是我经过试验和查看sql语句猜出来的,不知道这样理解是否正确。
为什么我的控制台输出了两次创建表的sql语句啊!!晕了
我插入数据成功,junit测试没报错,但是控制台出错了,哪个帮我看下呢,谢谢
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
如果是自动增长,String sid 我将长度设置成4,只能显示sql语句,但是数据表没创建!!而我的auto增长策略是sequence,这种情况下不知道String sid长度没有问题
String sid 自动增长,如果不指定长度可以输出sql语句,但是不能创建表
我的MySQL 5.7.18,hibernate 5.2.10不实现 Serializable不能生成复合主键!!!!
我的成功了,是不是很尴尬~~~~~~~
课程须知
学习本门课程前,需要具备以下技能: 1、精通Java语法和面向对象思想。 2、掌握JDBC数据库开发流程 3、熟悉SQL语句
老师告诉你能学到什么?
1、掌握类级别注解、属性基本注解和关联映射注解 2、能够灵活应用Hibernate注解进行开发

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消