控制台java application运行报错:
19:20:51,916 WARN RootClass:233 - composite-id class does not override equals(): com.mym.hibernate.model.StudentPK
(意思是:composite-id没有重写equals()方法,在com.num.hibernate.model.StudentPK)
Exception in thread "main" org.hibernate.MappingException: composite-id class must implement Serializable: com.mym.hibernate.model.StudentPK
(意思是:composite-id 必须实现Serializable接口,在com.mym.hibernate.model.StudentPK类中)
at org.hibernate.mapping.RootClass.checkCompositeIdentifier(RootClass.java:243)
at org.hibernate.mapping.RootClass.validate(RootClass.java:224)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1149)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1334)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
19:20:51,918 WARN RootClass:238 - composite-id class does not override hashCode(): com.mym.hibernate.model.StudentPK
(意思是:composite-id没有重写hashCode()方法,在com.num.hibernate.model.StudentPK)
at com.mym.hibernate.model.StudentTest.beforeClass(StudentTest.java:16)
at com.mym.hibernate.model.StudentTest.main(StudentTest.java:41)
控制台报错:
17:56:09,344 WARN RootClass:233 - composite-id class does not override equals(): com.mym.hibernate.model.StudentPK
17:56:09,346 WARN RootClass:238 - composite-id class does not override hashCode(): com.mym.hibernate.model.StudentPK
org.hibernate.MappingException: composite-id class must implement Serializable: com.mym.hibernate.model.StudentPK
(意思是:composite-id 必须实现Serializable接口,在com.mym.hibernate.model.StudentPK类中)
at org.hibernate.mapping.RootClass.checkCompositeIdentifier(RootClass.java:243)
at org.hibernate.mapping.RootClass.validate(RootClass.java:224)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1149)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1334)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at com.mym.hibernate.model.StudentTest.beforeClass(StudentTest.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
java.lang.NullPointerException
at com.mym.hibernate.model.StudentTest.afterClass(StudentTest.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:37)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
b.RMI实现原理 :就是通过Java对象可序列化机制实现分布计算。
19:33:13,613 WARN RootClass:233 - composite-id class does not override equals(): com.mym.hibernate.model.StudentPK
19:33:13,615 WARN RootClass:238 - composite-id class does not override hashCode(): com.mym.hibernate.model.StudentPK
19:33:14,084 INFO SchemaUpdate:155 - Running hbm2ddl schema update
19:33:14,085 INFO SchemaUpdate:167 - fetching database metadata
19:33:14,086 INFO SchemaUpdate:179 - updating schema
19:33:14,090 INFO DatabaseMetadata:119 - table not found: Student
19:33:14,114 INFO TableMetadata:65 - table found: hibernate._teacher
19:33:14,115 INFO TableMetadata:66 - columns: [zhicheng, id, title, birthdate, _name]
19:33:14,115 INFO TableMetadata:68 - foreign keys: []
19:33:14,115 INFO TableMetadata:69 - indexes: [primary]
19:33:14,117 INFO DatabaseMetadata:119 - table not found: Student
19:33:14,130 INFO TableMetadata:65 - table found: hibernate.generator_table
19:33:14,130 INFO TableMetadata:66 - columns: [pk_value, pk_key]
19:33:14,130 INFO TableMetadata:68 - foreign keys: []
19:33:14,131 INFO TableMetadata:69 - indexes: []
19:33:14,131 DEBUG SchemaUpdate:203 - create table Student (id integer not null, name varchar(255) not null, age integer, primary key (id, name))
19:33:14,187 INFO SchemaUpdate:217 - schema update complete
Hibernate:
insert
into
Student
(age, id, name)
values
(?, ?, ?)