Spring数据Jpa JavaConfig

2024-04-17

我最近正在使用 spring data jpa 开发一个 Spring Web 应用程序

我的持久性配置有问题:

@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages = "com.servmed")
@PropertySource({ "/resources/hibernate.properties" })
@EnableJpaRepositories(basePackages = "com.servmed.repositories")

public class PersistenceConfig {

    @Autowired
    private Environment env;


    Properties jpaProperties() {
        return new Properties() {
            {
                setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
                setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); //allows Hibernate to generate SQL optimized for a particular relational database.
                setProperty("hibernate.show_sql",env.getProperty("hibernate.show_sql"));
            }
        };
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory()
    {
        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        vendorAdapter.setGenerateDdl(true);
        vendorAdapter.setShowSql(true);

        LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
        factory.setDataSource(dataSource());
        factory.setJpaVendorAdapter(vendorAdapter);
        factory.setJpaProperties(jpaProperties());
        factory.setPackagesToScan("com.servmed.models");

        //factory.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());
        return factory;
    }

    @Bean
    public PlatformTransactionManager transactionManager()
    {
        EntityManagerFactory factory = entityManagerFactory().getObject();
        return new JpaTransactionManager(factory);
    }

    @Bean
    public HibernateExceptionTranslator hibernateExceptionTranslator(){
        return new HibernateExceptionTranslator();
    }


    @Bean
    public DataSource dataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
        dataSource.setUrl(env.getProperty("jdbc.url"));
        dataSource.setUsername(env.getProperty("jdbc.user"));
        dataSource.setPassword(env.getProperty("jdbc.pass"));

        return dataSource;
    }
}

我收到此错误,但我似乎找不到问题所在:

Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/servmed/configuration/PersistenceConfig.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory]]

PS:我注意到我添加到库中的休眠实体管理器已废弃,我应该用其他东西替换吗?


不完全确定问题是什么,但我相信您的实体管理器定义可能在某个地方被破坏。

我使用的这个定义与你的非常接近。看一看。

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

    LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
    emf.setDataSource(this.dataSource());
    emf.setPackagesToScan("com.servmed.models");
    emf.setPersistenceUnitName("MyPU");
    HibernateJpaVendorAdapter va = new HibernateJpaVendorAdapter();
    emf.setJpaVendorAdapter(va);
    Properties jpaProperties = new Properties();
    jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
    jpaProperties.put("hibernate.hbm2ddl.auto", "create");
    emf.setJpaProperties(jpaProperties);
    emf.afterPropertiesSet();
    return emf;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring数据Jpa JavaConfig 的相关文章

随机推荐

  • 如何在同一进程中从不同路径加载到同一库两次?

    我正在编写一个新程序 即使用 OpenSSL 加密数据 我希望我的程序符合 FIPS 标准 为了强制执行 FIPS 模式 我使用 API 进行设置FIPS 模式 集 我还需要将加密的数据传输到第三方设备 设备供应商还提供了一个与设备通信的库
  • 在 C# 中匹配西里尔字母符号

    我有一个巨大的代码文件 其中有很多行 如下所示 Enterprise TextMessageBox Show String Format S n n 0 e gt Message S 我想做的是用我提供的另一个文本找到带有西里尔符号字符串的
  • 复杂 json 中的嵌入表达式未正确替换

    在空手道测试中 我们能够替换 json 中单个键的嵌入表达式 但是当尝试替换 json 的复杂键时它不起作用 输入 json integration serviceData integrationService name integrati
  • 如何在 Eclipse/Java 中的同一工作区中引用另一个项目中的类

    我的 Eclipse ADT Android Java 工作区中有两个项目 MyProject MyProjectAutomatedUITests 在MyProject中有一个包 constants和一个班级ButtonNames java
  • 将div放入MYSQL die

    我有这个 mysql 请求 mysql query query or die mysql error 很简单 但我想改变mysql error 对于这个div div class ui widget div class ui state h
  • 无法使用机器ip连接到mongodb

    已安装Mongo using homebrew 如果我输入mongo在外壳上 它连接到test 但是当我输入ip address本地机器而不是127 0 0 1 mongo host 192 168 1 100 verbose 它给我错误消
  • 告诉程序当没有找到保存数据时要做什么 NSUserDefaults,iPhone

    我已经保存了使用 NSUserDefaults 保存的数据 我的印象是 如果已经没有任何内容保存到密钥中 第一次运行应用程序 它将默认为 0 然而 情况似乎并非如此 这是我所拥有的 To save void viewWillDisappea
  • style css标签会在body中渲染吗?

    我正在使用 CMS 显然它有一个错误 不允许我向其中添加任何内容一篇博客文章 它将所有内容插入正文中 在大多数情况下都可以正常工作 但在如下代码实例中 如果将这种类型的代码放入标签在所有主要浏览器中 IE8 Firefox Chrome 和
  • 如何保护应用程序免受第 3 方 js 库中存在的 XSS 向量的影响?

    我在 Android 移动应用程序中使用各种第 3 方库 如 cordova js jquery jquery mobile mobilizer 等 通过不安全地使用 eval settimeout inner outerhtml 这些库被
  • Hive:转换“yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”中缺少秒数的字符串日期时间

    我使用以下代码将字符串日期时间变量转换为日期时间 但转换后的字符串缺少 SSS 部分 使用的代码 cast FROM UNIXTIME UNIX TIMESTAMP oldtime yyyy MM dd T HH mm ss SSS Z y
  • 如何创建类python中所有可见元素的列表

    我正在使用 python 3 x Selenium WebDriver 我正在制作一个 for 循环来遍历页面的所有元素 限制类中元素的长度 然后打印迭代次数 但它如何获取所有可见和隐藏的元素仅获取页面中的可见元素 要从我正在使用的类中获取
  • Z-index 不适用于 Flex 元素? [复制]

    这个问题在这里已经有答案了 我试图有两列 一列是可以展开并重叠另一列的菜单 但我使用了一个 Flex 元素来包裹这些列 并且我的菜单展开了behind另一个元素 即使具有更大的z index 渲染效果是这样的 main font famil
  • 使用 Clipper 库的平行线

    我在用着CLIPPER http www angusj com delphi clipper php库偏移线并尝试制作平行线 ClipperOffset co new ClipperOffset co AddPath s JoinType
  • 使用jquery从右向左滑动内容

    当您按下 下一步 按钮时 视口会更改内容 两个 并进行转换 我想要的是 我想滑动内容 正如您在演示中看到的那样 使用translateX 200px 能给我渴望的效果 但它开始于0px并前往 200px 我希望每个 div 从红色条带 右
  • 解决“未找到 mongo”和“php_mongo.dll 不是 win32 应用程序”错误

    我已经尝试安装 mongodb 6 个多小时了 但仍然没有成功 我将非常详细地说明这一点 以便希望有人能帮助我完成这项工作 My local comp HP laptop Windows 7 64 bit operating system
  • 运行时固定大小 std::vector ?

    性能在我的应用程序中至关重要 我需要类似的东西std experimental dynarray http en cppreference com w cpp container dynarray 因此数组的大小在运行时决定 所以我考虑使用
  • 从 sqlite 读取 unicode 并创建 NSString

    我正在开发一个 iOS 应用程序 我需要在 SQLite DB 中存储和检索 这是具有下标的 NSString 的表示形式 我可以在编译时使用常量创建一个 NSString Br u2082 CCl u2084 u2082 是 2 下标 u
  • 如何获取当前模块内某个类的所有实例

    我有一个模块foo定义一个类Foo 并实例化该类的多个实例 从其他模块 我可以import foo并获得一个列表Foo实例化的对象 getattr foo f for f in dir f if isinstance getattr foo
  • 使用 AttributeSet 以不同颜色为 StyleConstant 下划线

    我正在实现一个拼写检查器 想知道是否有一种简单 明显的方法可以用不同的颜色 例如红色 在某些文本下划线 我已使用以下代码设置了所有内容并加下划线 还设置了文本的颜色 private AttributeSet getAttributeSet
  • Spring数据Jpa JavaConfig

    我最近正在使用 spring data jpa 开发一个 Spring Web 应用程序 我的持久性配置有问题 Configuration EnableTransactionManagement ComponentScan basePack