Hibernate一对一单向外键关联
2016-04-17 11:25
399 查看
一、一对一单向外键关联:
一对一单向外键关联主要用到了以下两个注解:
1、OneToOne(cascade=CasecadeTYPE.ALL);
cascade=CasecadeTYPE.ALL:表示的是表之间的级联关系,比如级联删除,级联更新等,ALL表示的是全级联。
2、JoinColumn(name="sid"unique=true);
JoinColumn:表示将被控类的外键写在主控类中
主要是用到主表中。
需要注意的点是:在保存时应该先保存外键对象再保存主表对象;
问题一:在编写实体类Students.java的时候发生一个错误:
检查之后发现错误是导致的原因是注解注解引用的包出现了问题:
@OneToOne(cascade=CascadeType.ALL)//表示全级联关系
@Column(name="pid"unique=true)
导致错误的包:
正确的包:
问题一:在一切都准备好了,要生成表结构的同时出现了第二个问题:问题的描述是这样的:
最主要的是这一句:
导致错误的原因是:
应该改成:
以下将正确执行的代码贴出:
1、students.java实体类(主控类):
2、IdCard实体类(被控类):
3、Hibernate.cfg.xml配置文件:
4、测试用例:
5、数据库表生成log:
6、数据库表生成情况:
7、编写一个测试用例来测试一对一单向外键关联的效果:
Log:
数据库数据插入情况:
IdCard表
Students表:
一对一的单向外键关联到此结束,转载的同仁注明出处。谢谢!
一对一单向外键关联主要用到了以下两个注解:
1、OneToOne(cascade=CasecadeTYPE.ALL);
cascade=CasecadeTYPE.ALL:表示的是表之间的级联关系,比如级联删除,级联更新等,ALL表示的是全级联。
2、JoinColumn(name="sid"unique=true);
JoinColumn:表示将被控类的外键写在主控类中
主要是用到主表中。
需要注意的点是:在保存时应该先保存外键对象再保存主表对象;
问题一:在编写实体类Students.java的时候发生一个错误:
Typemismatch:cannotconvertfromCascadeTypetoCascadeType[]
检查之后发现错误是导致的原因是注解注解引用的包出现了问题:
@OneToOne(cascade=CascadeType.ALL)//表示全级联关系
@Column(name="pid"unique=true)
导致错误的包:
importorg.hibernate.annotations.GenericGenerator; importorg.hibernate.metamodel.binding.CascadeType;
正确的包:
importjavax.persistence.OneToOne;
问题一:在一切都准备好了,要生成表结构的同时出现了第二个问题:问题的描述是这样的:
2016-4-1710:38:46org.hibernate.annotations.common.Version<clinit> INFO:HCANN000001:HibernateCommonsAnnotations{4.0.2.Final} 2016-4-1710:38:46org.hibernate.VersionlogVersion INFO:HHH000412:HibernateCore{4.2.21.Final} 2016-4-1710:38:46org.hibernate.cfg.Environment<clinit> INFO:HHH000206:hibernate.propertiesnotfound 2016-4-1710:38:46org.hibernate.cfg.EnvironmentbuildBytecodeProvider INFO:HHH000021:Bytecodeprovidername:javassist 2016-4-1710:38:46org.hibernate.cfg.Configurationconfigure INFO:HHH000043:Configuringfromresource:/hibernate.cfg.xml 2016-4-1710:38:46org.hibernate.cfg.ConfigurationgetConfigurationInputStream INFO:HHH000040:Configurationresource:/hibernate.cfg.xml 2016-4-1710:38:46org.hibernate.cfg.ConfigurationdoConfigure INFO:HHH000041:ConfiguredSessionFactory:null 2016-4-1710:38:46org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure WARN:HHH000402:UsingHibernatebuilt-inconnectionpool(notforproductionuse!) 2016-4-1710:38:46org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000115:Hibernateconnectionpoolsize:20 2016-4-1710:38:46org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000006:Autocommitmode:false 2016-4-1710:38:46org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000401:usingdriver[com.mysql.jdbc.Driver]atURL[jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8] 2016-4-1710:38:46org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000046:Connectionproperties:{user=root,password=****} 2016-4-1710:38:47org.hibernate.dialect.Dialect<init> INFO:HHH000400:Usingdialect:org.hibernate.dialect.MySQLDialect 2016-4-1710:38:47org.hibernate.engine.jdbc.internal.LobCreatorBuilderuseContextualLobCreation INFO:HHH000423:DisablingcontextualLOBcreationasJDBCdriverreportedJDBCversion[3]lessthan4
最主要的是这一句:
INFO:HHH000423:DisablingcontextualLOBcreationasJDBCdriverreportedJDBCversion[3]lessthan4 貌似是我的jdbc的版本太低,所以导致测试没有通过。但是这不是导致错误的主要原因,版本低一般不会导致问题出现,
有一篇博客有同样的问题但是还是执行成功了:http://blog.csdn.net/xwin1989/article/details/7380736
最主要的原因是如下的报错信息:
org.hibernate.AnnotationException:@Column(s)notallowedona@OneToOneproperty:oto_fk.Students.card atorg.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1745) atorg.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:895) atorg.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:728) atorg.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3625) atorg.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3579) atorg.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1381) atorg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786) atoto_fk.TestStudents.testShemaExport(TestStudents.java:24) atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) atjava.lang.reflect.Method.invoke(Method.java:597) atorg.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) atorg.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) atorg.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) atorg.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) atorg.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) atorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) atorg.junit.runners.ParentRunner$3.run(ParentRunner.java:231) atorg.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) atorg.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) atorg.junit.runners.ParentRunner.access$000(ParentRunner.java:50) atorg.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) atorg.junit.runners.ParentRunner.run(ParentRunner.java:300) atorg.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) atorg.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
我的Students.java实体类的类容是这样的:
packageoto_fk; importjava.io.Serializable; importjava.util.Date; importjavax.persistence.CascadeType; importjavax.persistence.Column; importjavax.persistence.Embedded; importjavax.persistence.EmbeddedId; importjavax.persistence.Entity;/*JPA注解*/ importjavax.persistence.GeneratedValue; importjavax.persistence.GenerationType; importjavax.persistence.Id; importjavax.persistence.OneToOne; importjavax.persistence.Table; importjavax.persistence.Transient; /** *学生实体类 *@authorAdministrator * */ //@Entity(name="t_students") @Entity//表示这是一个实体类 //schema:表示数据库的名称 //name:表示数据库的表名 //Embedddable注解表示一个非Entity类,但是可以嵌入到另外一个实体类中作为属性而存在 publicclassStudentsimplementsSerializable{ privateIdCardcard; privateintsid;//将学号改成字符串类型 privateStringgender;//性别 privateDatebirthday;//出生日期 privateStringmajor;//专业 publicStudents(IdCardcard,intsid,Stringgender,Datebirthday, Stringmajor){ super(); this.card=card; this.sid=sid; this.gender=gender; this.birthday=birthday; this.major=major; } @OneToOne(cascade=CascadeType.ALL)//表示全级联关系 @Column(name="pid",unique=true) publicIdCardgetCard(){ returncard; } publicvoidsetCard(IdCardcard){ this.card=card; } @Id @GeneratedValue//主键自增 publicintgetSid(){ returnsid; } publicvoidsetSid(intsid){ this.sid=sid; } publicStringgetGender(){ returngender; } publicvoidsetGender(Stringgender){ this.gender=gender; } publicDategetBirthday(){ returnbirthday; } publicvoidsetBirthday(Datebirthday){ this.birthday=birthday; } publicStringgetMajor(){ returnmajor; } publicvoidsetMajor(Stringmajor){ this.major=major; } publicStudents() { } }
导致错误的原因是:
@OneToOne(cascade=CascadeType.ALL)//表示全级联关系 @Column(name="pid",unique=true) publicIdCardgetCard(){ returncard; }
应该改成:
@OneToOne(cascade=CascadeType.ALL)//表示全级联关系 @JoinColumn(name="pid",unique=true) publicIdCardgetCard(){ returncard; }
以下将正确执行的代码贴出:
1、students.java实体类(主控类):
packageoto_fk; importjava.io.Serializable; importjava.util.Date; importjavax.persistence.CascadeType; importjavax.persistence.Column; importjavax.persistence.Embedded; importjavax.persistence.EmbeddedId; importjavax.persistence.Entity;/*JPA注解*/ importjavax.persistence.GeneratedValue; importjavax.persistence.GenerationType; importjavax.persistence.Id; importjavax.persistence.JoinColumn; importjavax.persistence.OneToOne; importjavax.persistence.Table; importjavax.persistence.Transient; /** *学生实体类 *@authorAdministrator * */ //@Entity(name="t_students") @Entity//表示这是一个实体类 //schema:表示数据库的名称 //name:表示数据库的表名 //Embedddable注解表示一个非Entity类,但是可以嵌入到另外一个实体类中作为属性而存在 publicclassStudentsimplementsSerializable{ privateIdCardcard; privateintsid;//将学号改成字符串类型 privateStringgender;//性别 privateDatebirthday;//出生日期 privateStringmajor;//专业 publicStudents(IdCardcard,intsid,Stringgender,Datebirthday, Stringmajor){ super(); this.card=card; this.sid=sid; this.gender=gender; this.birthday=birthday; this.major=major; } @OneToOne(cascade=CascadeType.ALL)//表示全级联关系 @JoinColumn(name="pid",unique=true) publicIdCardgetCard(){ returncard; } publicvoidsetCard(IdCardcard){ this.card=card; } @Id @GeneratedValue//主键自增 publicintgetSid(){ returnsid; } publicvoidsetSid(intsid){ this.sid=sid; } publicStringgetGender(){ returngender; } publicvoidsetGender(Stringgender){ this.gender=gender; } publicDategetBirthday(){ returnbirthday; } publicvoidsetBirthday(Datebirthday){ this.birthday=birthday; } publicStringgetMajor(){ returnmajor; } publicvoidsetMajor(Stringmajor){ this.major=major; } publicStudents() { } }
2、IdCard实体类(被控类):
packageoto_fk; importjavax.persistence.Column; importjavax.persistence.Entity; importjavax.persistence.GeneratedValue; importjavax.persistence.Id; importorg.hibernate.annotations.GenericGenerator; /*身份证类*/ @Entity publicclassIdCard{ privateStringpid;//身份证号 privateStringsname;//学生姓名 //无参数的构造器 publicIdCard() { } //带参数的构造器 publicIdCard(Stringpid,Stringsname){ super(); this.pid=pid; this.sname=sname; } @Id//指定主键 @Column(length=18)//指定身份证的长度 //主键生成策略 @GenericGenerator(name="pid",strategy="assigned") @GeneratedValue(generator="pid") publicStringgetPid(){ returnpid; } publicvoidsetPid(Stringpid){ this.pid=pid; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ this.sname=sname; } }
3、Hibernate.cfg.xml配置文件:
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEhibernate-configurationPUBLIC "-//Hibernate/HibernateConfigurationDTD3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <!--old:http://hibernate.sourceforge.net/hibernate-configuration-3.6.dtd--> <!--new: http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd--> <!--: http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd--> <hibernate-configuration> <session-factory> <!--显示sql语句--> <propertyname="show_sql">true</property> <propertyname="myeclipse.connection.profile">bookshop</property> <!--<propertyname="connection.url"> jdbc:mysql://localhost:3306/bookshop jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8 </property>--> <propertyname="connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8</property> <propertyname="connection.username">root</property> <propertyname="connection.password">woaiwojia..123</property> <propertyname="connection.driver_class">com.mysql.jdbc.Driver</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <propertyname="format_sql">true</property> <propertyname="hbm2ddl.auto">update</property> <propertyname="hibernate.current_session_context_class">thread</property> <!--将实体类映射到数据库--> <mappingclass="oto_fk.Students"/> <mappingclass="oto_fk.IdCard"/> </session-factory> </hibernate-configuration>
4、测试用例:
packageoto_fk; importorg.hibernate.SessionFactory; importorg.hibernate.cfg.Configuration; importorg.hibernate.service.ServiceRegistry; importorg.hibernate.service.ServiceRegistryBuilder; importorg.hibernate.tool.hbm2ddl.SchemaExport; importorg.junit.Test; publicclassTestStudents{ @Test publicvoidtestShemaExport(){ //创建Hibernate配置对象 Configurationconfiguration=newConfiguration().configure(); //创建服务注册对象 ServiceRegistryserviceRegistry= newServiceRegistryBuilder() .applySettings(configuration.getProperties()) .buildServiceRegistry(); //创建sessionFactory SessionFactorysessionFactory=configuration.buildSessionFactory(serviceRegistry); //生成SchemaExport对象 SchemaExportexport=newSchemaExport(configuration); //调用schemaExport的create生成数据库表结构 export.create(true,true); } }
5、数据库表生成log:
2016-4-1710:53:56org.hibernate.annotations.common.Version<clinit> INFO:HCANN000001:HibernateCommonsAnnotations{4.0.2.Final} 2016-4-1710:53:56org.hibernate.VersionlogVersion INFO:HHH000412:HibernateCore{4.2.21.Final} 2016-4-1710:53:56org.hibernate.cfg.Environment<clinit> INFO:HHH000206:hibernate.propertiesnotfound 2016-4-1710:53:56org.hibernate.cfg.EnvironmentbuildBytecodeProvider INFO:HHH000021:Bytecodeprovidername:javassist 2016-4-1710:53:56org.hibernate.cfg.Configurationconfigure INFO:HHH000043:Configuringfromresource:/hibernate.cfg.xml 2016-4-1710:53:56org.hibernate.cfg.ConfigurationgetConfigurationInputStream INFO:HHH000040:Configurationresource:/hibernate.cfg.xml 2016-4-1710:53:56org.hibernate.cfg.ConfigurationdoConfigure INFO:HHH000041:ConfiguredSessionFactory:null 2016-4-1710:53:56org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure WARN:HHH000402:UsingHibernatebuilt-inconnectionpool(notforproductionuse!) 2016-4-1710:53:56org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000115:Hibernateconnectionpoolsize:20 2016-4-1710:53:56org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000006:Autocommitmode:false 2016-4-1710:53:56org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000401:usingdriver[com.mysql.jdbc.Driver]atURL[jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8] 2016-4-1710:53:56org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000046:Connectionproperties:{user=root,password=****} 2016-4-1710:53:56org.hibernate.dialect.Dialect<init> INFO:HHH000400:Usingdialect:org.hibernate.dialect.MySQLDialect 2016-4-1710:53:56org.hibernate.engine.jdbc.internal.LobCreatorBuilderuseContextualLobCreation INFO:HHH000423:DisablingcontextualLOBcreationasJDBCdriverreportedJDBCversion[3]lessthan4 2016-4-1710:53:57org.hibernate.engine.transaction.internal.TransactionFactoryInitiatorinitiateService INFO:HHH000399:Usingdefaulttransactionstrategy(directJDBCtransactions) 2016-4-1710:53:57org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory<init> INFO:HHH000397:UsingASTQueryTranslatorFactory 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.SchemaUpdateexecute INFO:HHH000228:Runninghbm2ddlschemaupdate 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.SchemaUpdateexecute INFO:HHH000102:Fetchingdatabasemetadata 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.SchemaUpdateexecute INFO:HHH000396:Updatingschema 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.DatabaseMetadatagetTableMetadata INFO:HHH000262:Tablenotfound:IdCard 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.DatabaseMetadatagetTableMetadata INFO:HHH000262:Tablenotfound:Students 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.DatabaseMetadatagetTableMetadata INFO:HHH000262:Tablenotfound:IdCard 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.DatabaseMetadatagetTableMetadata INFO:HHH000262:Tablenotfound:Students 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.DatabaseMetadatagetTableMetadata INFO:HHH000262:Tablenotfound:IdCard 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.DatabaseMetadatagetTableMetadata INFO:HHH000262:Tablenotfound:Students 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.SchemaUpdateexecute INFO:HHH000232:Schemaupdatecomplete 2016-4-1710:53:57org.hibernate.dialect.Dialect<init> INFO:HHH000400:Usingdialect:org.hibernate.dialect.MySQLDialect 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.SchemaExportexecute INFO:HHH000227:Runninghbm2ddlschemaexport 2016-4-1710:53:57org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure WARN:HHH000402:UsingHibernatebuilt-inconnectionpool(notforproductionuse!) 2016-4-1710:53:57org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000115:Hibernateconnectionpoolsize:20 2016-4-1710:53:57org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000006:Autocommitmode:false 2016-4-1710:53:57org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000401:usingdriver[com.mysql.jdbc.Driver]atURL[jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8] 2016-4-1710:53:57org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure INFO:HHH000046:Connectionproperties:{user=root,password=****} altertableStudents drop foreignkeyFK_mryi31xkbwbosevquurf60ivb droptableifexistsIdCard droptableifexistsStudents createtableIdCard( pidvarchar(18)notnull, snamevarchar(255), primarykey(pid) ) createtableStudents( sidintegernotnullauto_increment, birthdaydatetime, gendervarchar(255), majorvarchar(255), pidvarchar(18), primarykey(sid) ) altertableStudents addconstraintUK_mryi31xkbwbosevquurf60ivbunique(pid) altertableStudents addindexFK_mryi31xkbwbosevquurf60ivb(pid), addconstraintFK_mryi31xkbwbosevquurf60ivb foreignkey(pid) referencesIdCard(pid) 2016-4-1710:53:57org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplstop INFO:HHH000030:Cleaningupconnectionpool[jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8] 2016-4-1710:53:57org.hibernate.tool.hbm2ddl.SchemaExportexecute INFO:HHH000230:Schemaexportcomplete
6、数据库表生成情况:
7、编写一个测试用例来测试一对一单向外键关联的效果:
@Test
publicvoidaddStudents()
{
//创建Hibernate配置对象
Configurationconfiguration=newConfiguration().configure();
//创建服务注册对象
ServiceRegistryserviceRegistry=
newServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
//创建sessionFactory
SessionFactorysessionFactory=configuration.buildSessionFactory(serviceRegistry);
//创建会话对象
Sessionsession=sessionFactory.getCurrentSession();
//开启事务
Transactiontx=session.beginTransaction();
//生成一个学生身份证对象
IdCardcard=newIdCard("888888888888888888","刘德华");
//生成一个学生对象
Studentsstu=newStudents(card,"男",newDate(),"计算机");
//先保存被控表对象(身份证)
session.save(card);
session.save(stu);
//提交事务
tx.commit();
Log:
2016-4-1711:19:45org.hibernate.annotations.common.Version<clinit>
INFO:HCANN000001:HibernateCommonsAnnotations{4.0.2.Final}
2016-4-1711:19:45org.hibernate.VersionlogVersion
INFO:HHH000412:HibernateCore{4.2.21.Final}
2016-4-1711:19:45org.hibernate.cfg.Environment<clinit>
INFO:HHH000206:hibernate.propertiesnotfound
2016-4-1711:19:45org.hibernate.cfg.EnvironmentbuildBytecodeProvider
INFO:HHH000021:Bytecodeprovidername:javassist
2016-4-1711:19:45org.hibernate.cfg.Configurationconfigure
INFO:HHH000043:Configuringfromresource:/hibernate.cfg.xml
2016-4-1711:19:45org.hibernate.cfg.ConfigurationgetConfigurationInputStream
INFO:HHH000040:Configurationresource:/hibernate.cfg.xml
2016-4-1711:19:45org.hibernate.cfg.ConfigurationdoConfigure
INFO:HHH000041:ConfiguredSessionFactory:null
2016-4-1711:19:45org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure
WARN:HHH000402:UsingHibernatebuilt-inconnectionpool(notforproductionuse!)
2016-4-1711:19:45org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure
INFO:HHH000115:Hibernateconnectionpoolsize:20
2016-4-1711:19:45org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure
INFO:HHH000006:Autocommitmode:false
2016-4-1711:19:45org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure
INFO:HHH000401:usingdriver[com.mysql.jdbc.Driver]atURL[jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8]
2016-4-1711:19:45org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigure
INFO:HHH000046:Connectionproperties:{user=root,password=****}
2016-4-1711:19:46org.hibernate.dialect.Dialect<init>
INFO:HHH000400:Usingdialect:org.hibernate.dialect.MySQLDialect
2016-4-1711:19:46org.hibernate.engine.jdbc.internal.LobCreatorBuilderuseContextualLobCreation
INFO:HHH000423:DisablingcontextualLOBcreationasJDBCdriverreportedJDBCversion[3]lessthan4
2016-4-1711:19:46org.hibernate.engine.transaction.internal.TransactionFactoryInitiatorinitiateService
INFO:HHH000399:Usingdefaulttransactionstrategy(directJDBCtransactions)
2016-4-1711:19:46org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory<init>
INFO:HHH000397:UsingASTQueryTranslatorFactory
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.SchemaUpdateexecute
INFO:HHH000228:Runninghbm2ddlschemaupdate
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.SchemaUpdateexecute
INFO:HHH000102:Fetchingdatabasemetadata
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.SchemaUpdateexecute
INFO:HHH000396:Updatingschema
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000261:Tablefound:hibernate.idcard
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000037:Columns:[pid,sname]
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000108:Foreignkeys:[]
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000126:Indexes:[primary]
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000261:Tablefound:hibernate.students
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000037:Columns:[birthday,sid,gender,pid,major]
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000108:Foreignkeys:[fk_mryi31xkbwbosevquurf60ivb]
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.TableMetadata<init>
INFO:HHH000126:Indexes:[primary,fk_mryi31xkbwbosevquurf60ivb,uk_mryi31xkbwbosevquurf60ivb]
2016-4-1711:19:47org.hibernate.tool.hbm2ddl.SchemaUpdateexecute
INFO:HHH000232:Schemaupdatecomplete
Hibernate:
insert
into
IdCard
(sname,pid)
values
(?,?)
Hibernate:
insert
into
Students
(birthday,pid,gender,major)
values
(?,?,?,?)
数据库数据插入情况:
IdCard表
Students表:
一对一的单向外键关联到此结束,转载的同仁注明出处。谢谢!
相关文章推荐
- 06-图2 Saving James Bond - Easy Version (25分)
- LeetCode——042
- POJ 1015 动态规划
- VMware 虚拟机和 Macintosh 键盘对应关系表
- Visual Tracking with Fully Convolutional Networks
- 【笔试/面试】—— 从余弦定理到三角形两边之和大于第三边的证明
- c++模板特化和偏特化
- XCODE7以后不能使用HTTP协议解决办法
- XCODE7以后不能使用HTTP协议解决办法
- 构建之法阅读笔记06
- ggplot2 上篇
- Android 嵌套滑动机制(NestedScrolling)
- Xcode7 中创建静态库:.a 和 .framework(二)
- QT + vs 运行的项目出现控制台的解决办法
- Java基本语法和命名规范
- 互质和与约数和
- 遗传网络算法
- windows下安装SVN服务器端和客户端和MyEclipse支持
- Struts2 知识体系
- 大数