我们有一个处理消息的方法。 在处理消息的时候出现了异常,那出现异常后这个消息会怎么处理呢。 根据我们的实际情况的观察,如果出现了异常。 但是你没有捕获或者处理异常,这个消息会一直存在,并且你的系统会持续报告异常。 所以在你的系统中有要捕获异常,并且进行正确的处理。
我们有一个处理消息的方法。 在处理消息的时候出现了异常,那出现异常后这个消息会怎么处理呢。 根据我们的实际情况的观察,如果出现了异常。 但是你没有捕获或者处理异常,这个消息会一直存在,并且你的系统会持续报告异常。 所以在你的系统中有要捕获异常,并且进行正确的处理。
升级到 Hibernate 5 后,提示有错误: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map; 完整的错误栈为: java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map; at org.hibernate.cache.internal.EnabledCaching.<init>(EnabledCaching.java:77) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:33) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:24) at org.hibernate.service.spi.SessionFactoryServiceInitiator.initiateService(SessionFactoryServiceInitiator.java:30) at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:68) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:109) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:239) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) 如果你仅仅从错误信息,你可能看不出什么问题。 Google 搜索也找不到什么好的回答。经过我们对源代码的分析和排查,我们发现这是一个 JPA 版本不兼容的问题。 你的Hibernate 可能需要更高版本的 JPA,但是你的项目中只有低版本的 JPA 有关 JPA 的支持列表可以访问页面:https://hibernate.org/orm/releases/ 请查看 JPA 的版本配置列表。 根据我们的项目情况,我们需要使用 JPA 2.2,但是我们没有在 Maven 中指定 JPA 导致了上面的错误。
真的如题目说的那样吗? 还是一个战略忽悠局? 一个操作系统不是说操作系统有多牛,而是操作系统的生态有多牛。我们是有大量的用户,没错。 用户不是被绑在裤腰带上忽悠的。 哪怕我们操作系统能做到一个 CentOS 的水平都非常令人欣慰了。 打了针鸡血然后呢?原来消费爱国热情可以这么简单粗暴。
提示的错误信息如下: org.hibernate.MappingException: Unknown entity: com.ossez.reoc.common.crm.DoNotCall at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:670) at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1721) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:118) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192) at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177) at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32) at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:713) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:705) at org.hibernate.internal.SessionImpl.save(SessionImpl.java:700) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:350) at com.sun.proxy.$Proxy51.save(Unknown Source) at com.ossez.reoc.common.Factory.save(Factory.java:159) at com.ossez.reoc.common.crm.factories.DoNotCallFactory.save(DoNotCallFactory.java:27) at com.ossez.reoc.common.tests.DoNotCallTest.testCreate(DoNotCallTest.java:23) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at junit.framework.TestCase.runTest(TestCase.java:176) at junit.framework.TestCase.runBare(TestCase.java:141) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:252) at junit.framework.TestSuite.run(TestSuite.java:247) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) 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) 这个错误很有可能是你的 SessionFactory 在初始化的时候出现了错误。 导致了 Hibernate 不能找到正确的实体配置。 请参考: Hibernate 4 升级到 Hibernate 5 的时候 SessionFactory 不能使用 中的内容。
在 Hibernate 4 升级到 5 的时候老的 sessionFactory 出现错误。 public static SessionFactory initSession() { Configuration configuration = new Configuration(); configuration.configure(); serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); return sessionFactory; } 你可以使用下面的代码来在 Hibernate 5 中初始化: public static SessionFactory initSession() { Configuration configuration = new Configuration(); configuration.configure(); serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); Metadata metadata = new MetadataSources(serviceRegistry).getMetadataBuilder().build(); sessionFactory = metadata.getSessionFactoryBuilder().build(); return sessionFactory; }
希望能够在 IntelliJ 代码上面显示方法的 docs。 如何进行显示? 你可以使用 Ctrl + Q 这个快捷键来查看方法的 Docs。
这个问题太大了吧。 初级用法,登录,Pull,push,下载。 中级用法,Fork,修改。 高级用法,参加项目,PR,
猜想是 Oracle 想继续 JDK 的霸主地位。 通过升级和终止老版本支持来让用户继续使用 Oracle JDK。 很多公司为了与 Oracle 解绑,开始使用 OpenJDK 了。要知道 JAVA 的强大和 Java 的生态密不可分,非常怀念 SUN 时期的 Java 平台。 其实 JDK 也处于相对稳定的阶段了,并不需要频繁的升级,频繁升级会带来很多问题。现在主流还是 JDK 8,从 8 到 11 会有一个比较痛苦的过程。我们老项目的 JDK 升级非常痛苦。
在使用 Spring AMQP 发送消息到 RabbitMQ 的时候收到错误信息: inequivalent arg 'x-queue-type' for queue 'com.ossez.real.estate' in vhost '/': received none but current is the value 'classic' of type 'longstr', class-id=50, method-id=10 上面的错误信息已经很明显了,说明的是发送消息的队列参数中少了 x-queue-type 这个参数。 在代码中,我们创建队列的参数为: return new Queue(MY_QUEUE_NAME, NON_DURABLE); 这直接创建队列的参数少了 args.put("x-queue-type", "classic"); 因此,我们需要在创建队列的时候添加上面的参数。 修改代码为: Map<String, Object> args = new HashMap<>(); // // set the queue with a dead letter feature args.put("x-queue-type", "classic"); return new Queue(MY_QUEUE_NAME, NON_DURABLE, false, false, args); 请参考 GitHub 中的代码: https://github.com/cwiki-us-demo/tutorials/blob/master/spring-amqp/src/main/java/com/baeldung/springamqp/simple/HelloWorldMessageApp.java
在一个 Gradle 项目中,有若干子项目。 当 Gradle 到如后,子项目不能被 IntelliJ 识别代码。 如下图的这个代码就没有被自动识别。 这个有可能是因为你的这个子项目没有被添加到父项目中。 尝试在 settings.gradle 文件中将项目包含进来。 如果你使用的是 Java 的项目 那么可能需要在 build.gradle 中添加 下面的内容: subprojects { apply plugin: 'java' }