在本文中,我们将详细介绍org.hibernate.PropertyAccessException:Nullvalue的各个方面,同时,我们也将为您带来关于"net.sf.hibernate.Prop
在本文中,我们将详细介绍org.hibernate.PropertyAccessException: Null value的各个方面,同时,我们也将为您带来关于"net.sf.hibernate.PropertyValueException"、Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery、Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...、Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionEx...的有用知识。
本文目录一览:- org.hibernate.PropertyAccessException: Null value
- "net.sf.hibernate.PropertyValueException"
- Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery
- Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...
- Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionEx...
org.hibernate.PropertyAccessException: Null value
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type sette
数据库里amount字段值为NULL,进行对象持久化关联时,企图给对象的这个属性赋值为空,而对象实例的这个属性不能为空值,所以出现错误。【amount是int型,不能为空】
解决方法:将该字段在类中的类型定义为Integer。
Integer code和int code的区别:
Integer是对象 code = null; 对象可以为空.
int 是普通类型 不可能 = null.
根据在数据库里,code是可以空的,故应该映射成Integer类型的。 而且hibernate中要用包装类java.long.Integer,不要用基本类型Integer.
"net.sf.hibernate.PropertyValueException"
如果你遇到了下面的错误信息,例如:
ERROR [Importing data task] [confluence.importexport.impl.ReverseDatabinder] endElement net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: com.atlassian.user.impl.hibernate.DefaultHibernateUser.name
这个意思是在表中有一个不因为为 null 的地方的值为 null 了。在上面的例子中,这个在 USERS 表中的 name 列有记录为 null。有时候这个问题也会出现在 ATTACHMENTS 表中。
删除上面为 null 的记录,然后重新进行 xml 导出和导入。
https://www.cwiki.us/display/CONFLUENCEWIKI/Troubleshooting+XML+backups+that+fail+on+restore
Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery
如何解决Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery?
在 google play 控制台中,我看到许多只有最新设备和 Android 11 的用户都遇到了这种崩溃:
kotlin.UninitializedPropertyAccessException
de.xxx.blabla.MainActivity.getAdaptergallery
我什至没有任何称为 getAdaptergallery
大头痕迹是:
java.lang.RuntimeException:
at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4864)
at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4901)
at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8512)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)
Caused by: java.lang.RuntimeException:
at android.app.ActivityThread.deliverResults (ActivityThread.java:5506)
at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4851)
at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4901)
at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8512)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)
Caused by: kotlin.UninitializedPropertyAccessException:
at de.xxx.blabla.MainActivity.getAdaptergallery (MainActivity.java:7)
at de.xxx.blabla.MainActivity.onActivityResult (MainActivity.java)
at android.app.Activity.dispatchActivityResult (Activity.java:8541)
at android.app.ActivityThread.deliverResults (ActivityThread.java:5499)
at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4851)
at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4901)
at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:246)
at android.app.ActivityThread.main (ActivityThread.java:8512)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)
EDIT:
这就是我在 onActivityResult 中的内容:
public override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,intent)
if(requestCode == 777 && resultCode == RESULT_OK && data != null) {
if(data.hasExtra("commentCountChanged")) {
val json = JSONObject(data.getStringExtra("commentCountChanged")!!)
val memeID = json.getLong("memeID")
val commentCount = json.getInt("commentCount")
for (i in 0 until adapterMemes.memes.size) {
if (adapterMemes.memes[i].id == memeID) {
adapterMemes.memes[i].commentcount = commentCount
val viewHolder = recyclerViewMemes.findViewHolderForAdapterPosition(i) as RecyclerView.ViewHolder
if (commentCount == 0) {
viewHolder.itemView.memeCommentsCount.text = "\u25CF"
viewHolder.itemView.memeCommentsCount.setTextSize(
TypedValue.COMPLEX_UNIT_SP,8f
)
} else {
viewHolder.itemView.memeCommentsCount.text =
commentCount.toString()
viewHolder.itemView.memeCommentsCount.setTextSize(
TypedValue.COMPLEX_UNIT_SP,16f
)
}
break
}
}
}
if(data.hasExtra("list")) {
val updatedMemes = data.getParcelableArrayListExtra<Memes>("list") as ArrayList<Memes>
val finalMemes: MutableList<Memes> = mutablelistof()
for(i in 0 until updatedMemes.size){
if(updatedMemes[i].title != "show_ad_break"){
finalMemes.add(updatedMemes[i])
}
}
adaptergallery.memes = finalMemes
adaptergallery.notifyDataSetChanged()
}
}
}
解决方法
我什至没有任何称为 getAdapterGallery 的类/方法
是的,你知道。您有一个名为 adapterGallery
的 Kotlin 属性,如您在代码中所见:
adapterGallery.memes = finalMemes
adapterGallery.notifyDataSetChanged()
就 JVM 实现而言,Kotlin 属性由一个 Java 字段以及一个 getter 和 setter 对组成。名为 adapterGallery
的属性的 getter 是 getAdapterGallery()
。
因此,根据错误消息,您已将 adapterGallery
定义为 lateinit var
,并且当您到达 onActivityResult()
中引用 { {1}}。例如,在以下情况下可能会发生此错误:
- 用户导航到任何向您返回结果的活动
- 用户离开您的应用(例如,系统主页导航、切换到另一个任务、响应通知、响应来电)
- 当您的应用在后台运行时,Android 会终止您的进程以释放系统 RAM,因为您的用户使用的是 RAM 有限的低端手机,但也有一堆繁忙的应用
- 用户在离开您的应用后 30 分钟内返回到它,因此 Android 将用户返回到他们上次打开的活动,以尝试保留您的应用一直存在的错觉,尽管它进程已终止
- 用户在该 Activity 中执行某些操作以返回到调用
adapterGallery
的那个,而该进程在此过程中并不存在,而 Android 在您有机会设置 UI 之前调用了startActivityForResult()
在现代 Android 应用架构中,onActivityResult()
不会操作任何小部件或与这些小部件紧密耦合的对象(例如 onActivityResult()
)。相反,RecyclerView.Adapter
会更新一些状态持有者(例如,onActivityResult()
),然后使用反应式 API(例如,ViewModel
)发出一些新结果(例如,视图状态) )。然后,只要您的代码观察响应式 API 仅在您的小部件准备好使用数据后才这样做,您就可以避免这种崩溃。
另一种方法是首先尝试消除 LiveData
。在现代 Android 应用程序开发中,我们尝试使用很少的 Activity,将屏幕实现为片段(或可组合)。您在 onActivityResult()
中的代码表明您正在响应您的其他活动的某些结果。也许您应该用一个 Activity 替换这两个 Activity,以其他方式更新屏幕(片段、组合、切换视图可见性等)。
许多关于 Android 应用开发的书籍和课程都介绍了这些更现代的技术。关注过去三年内撰写或更新的内容。
无论您是否更新您的应用以使用现代推荐的做法,您都需要确保不要尝试操作尚未初始化的 onActivityResult()
。
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''entityManagerFactory'' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
... 24 more
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774)
... 39 more
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ''hibernate.dialect'' not set
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
... 56 more
第一次使用 springboot+jpa 进行操作数据库,刚启动就爆出来异常:
应该在 yml 配置文件中加上:
spring:
jpa:
show-sql: true
hibernate:
ddl-auto: create
database-platform: org.hibernate.dialect.PostgreSQLDialect
Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionEx...
Linux下mysql修改连接超时wait_timeout
1,首先:
show variables like ''%timeout%'';
显示结果:
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 3600 |
| wait_timeout | 28800 |
+-----------------------------+----------+
12 rows in set (0.00 sec)
其中有用的是: interactive_timeout 和wait_timeout 为28800,默认为8小时设置;
一般线上的环境中mysql中连接时间设置为7天即可;
2,其次:
执行命令: set interactive_timeout=604800;
set wait_timeout=604800;
最后:执行show variables like ''%timeout%'';看看执行成功没有,显示结果为:
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 604800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 3600 |
| wait_timeout | 604800 |
+-----------------------------+----------+
12 rows in set (0.00 sec)
表明执行成功了。。。
关于org.hibernate.PropertyAccessException: Null value的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于"net.sf.hibernate.PropertyValueException"、Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery、Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...、Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionEx...等相关内容,可以在本站寻找。
本文标签: