我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JPA中jpaProperties怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JPA中jpaProperties怎么用

这篇文章主要为大家展示了“JPA中jpaProperties怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JPA中jpaProperties怎么用”这篇文章吧。

JPA配置之jpaProperties

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:jpa="http://www.springframework.org/schema/data/jpa"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"><!-- spring自动读取指定位置的配置为简到spring中 --><context:property-placeholder location="classpath*:/application.properties"/><context:component-scan base-package="com.shiroweb"><!-- 扫描com.shiroweb包下除去@Controller以外注解的类 --><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/><context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/></context:component-scan><!-- c3p0数据源配置 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}" /><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!-- Jpa Entity Manager 配置 关联hibernateJpaVendorAdapter --><bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/><property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/><property name="packagesToScan" value="com.shiroweb"/><!-- <property name="jpaProperties"><props>命名规则 My_NAME->MyName<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>实体类对应数据库没有表 就生成一个表<prop key="hibernate.hbm2ddl.auto">update</prop></props></property> --><!-- 指定JPA属性;如Hibernate中指定是否显示SQL的是否显示、方言等 --><property name="jpaProperties">           <props>               <!-- <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> -->               <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>               <!-- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> -->               <prop key="hibernate.show_sql">true</prop>               <prop key="hibernate.format_sql">true</prop>               <!-- <prop key="hibernate.hbm2ddl.auto">validate</prop> -->               <prop key="hibernate.hbm2ddl.auto">update</prop>           </props>       </property></bean><!-- 配置hibernateJpaVendorAdapter关联数据源 --><bean id="hibernateJpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"><property name="database" value="MYSQL" />          <property name="showSql" value="true" /> </bean><!-- Spring Data Jpa配置 --> <jpa:repositories base-package="com.shiroweb"  transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/>   <!-- Jpa 事务配置 --><bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="entityManagerFactory"/></bean> <!-- 使用annotation定义事务 --><tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /></beans>

其中jpaProperties是这是jpa的一些属性的

<!-- 指定JPA属性;如Hibernate中指定是否显示SQL的是否显示、方言等 --> <property name="jpaProperties">           <props>               <!-- <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> -->               <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>               <!-- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop> -->               <prop key="hibernate.show_sql">true</prop>               <prop key="hibernate.format_sql">true</prop>               <!-- <prop key="hibernate.hbm2ddl.auto">validate</prop> -->               <prop key="hibernate.hbm2ddl.auto">update</prop>           </props>       </property>

这里有个属性为

<prop key="hibernate.hbm2ddl.auto">update</prop>

这是一个有用的设置

其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。

  • create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。

  • create-drop:每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

  • update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。

  • validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

Sping Data Jpa配置问题

spring.jpa.properties.hibernate.hbm2ddl.auto=update

在配置spring data jpa时,如果spring.jpa.properties.hibernate.hbm2ddl.auto设置为update,会自动更新数据表结构,比如Entity中增加成员变量,数据表中也会增加相应的字段,但是需要注意的是,如果删除一个成员变量,这时数据表中不会自动删除对应的字段,如果删除的那个成员变量在数据表中被设置为not null,当再次运行时就会报错,如下面的例子

新建一个实体类

import lombok.Data;import javax.persistence.*; @Entity@Datapublic class Car{     @Id    @Column(name="id", nullable = false)    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;     @Column(nullable = false)    private String price;     @Column    private String color;     @Column    private String brand;}

这时可以在数据库中看到已经自动生成数据表car,并且有对应的字段

JPA中jpaProperties怎么用

这时我们删掉Car中的price,重新运行,我们再次查看数据库

JPA中jpaProperties怎么用

发现还是存在price字段

以上是“JPA中jpaProperties怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JPA中jpaProperties怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JPA中jpaProperties怎么用

这篇文章主要为大家展示了“JPA中jpaProperties怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JPA中jpaProperties怎么用”这篇文章吧。JPA配置之jpaPrope
2023-06-25

Spring Data JPA中关键字Exists怎么用

这篇文章给大家分享的是有关Spring Data JPA中关键字Exists怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring Data JPA 关键字Exists查询数据库中的此数据是否已存在:例
2023-06-15

jpa的save方法怎么使用

JPA的save方法用于保存或更新实体对象。具体使用方法如下:1. 定义一个实体类,例如User。java@Entity@Table(name = "user")public class User {@Id@GeneratedValue(s
2023-10-18

怎么在Springboot中使用Thymeleaf和Jpa实现登录

本篇文章为大家展示了怎么在Springboot中使用Thymeleaf和Jpa实现登录,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先要创建一个springboot项目添加以下依赖项pom.xml
2023-06-15

jpa中无法删除onetomany中many怎么办

这篇文章主要介绍“jpa中无法删除onetomany中many怎么办”,在日常操作中,相信很多人在jpa中无法删除onetomany中many怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jpa中无法删
2023-06-21

jpa中query参数问题怎么解决

在JPA中,可以使用以下几种方式解决query参数问题:1. 使用命名参数:在JPQL查询语句中使用命名参数,然后在创建Query对象时,通过setParameter方法为参数赋值。例如:```javaString queryString
2023-09-13

Spring Data JPA注解Entity怎么使用

要使用Spring Data JPA注解@Entity,首先需要创建一个实体类并在类名上添加@Entity注解。这告诉Spring Data JPA框架这个类是一个JPA实体,可以与数据库表进行映射。下面是一个简单的示例:import
Spring Data JPA注解Entity怎么使用
2024-03-02

Springboot JPA怎么使用distinct返回对象

这篇文章主要讲解了“Springboot JPA怎么使用distinct返回对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot JPA怎么使用distinct返回对象”吧
2023-06-29

SpringBoot中怎么使用JPA作为数据持久化框架

今天小编给大家分享一下SpringBoot中怎么使用JPA作为数据持久化框架的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。J
2023-07-05

SpringBoot怎么整合JPA框架

这篇文章主要介绍了SpringBoot怎么整合JPA框架的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么整合JPA框架文章都会有所收获,下面我们一起来看看吧。一. Spring Boot数
2023-07-04

怎么利用Spring Boot和JPA创建GraphQL API

本篇内容主要讲解“怎么利用Spring Boot和JPA创建GraphQL API”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用Spring Boot和JPA创建GraphQL API”
2023-06-30

JPA @ManyToMany报错怎么解决

本篇内容主要讲解“JPA @ManyToMany报错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JPA @ManyToMany报错怎么解决”吧!JPA @ManyToMany 报错St
2023-06-21

JPA中如何使用@EntityListeners注解

这篇文章给大家介绍JPA中如何使用@EntityListeners注解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JPA实体类监听器@EntityListeners注解的使用被@Prepersist注解的方法 ,完成
2023-06-20

springboot jpa的用法是什么

Spring Boot JPA是Spring Boot框架中的一个模块,用于简化与数据库的交互和管理。它基于Java Persistence API(JPA)标准,并提供了一种简单而强大的方式来操作数据库。使用Spring Boot JPA
2023-10-11

JPA怎么使用findBy方法自定义查询

这篇文章给大家分享的是有关JPA怎么使用findBy方法自定义查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JPA使用findBy方法自定义查询最近在项目中使用spring boot+jpa的方式来访问数据库
2023-06-21

jpa怎么修改指定字段

在JPA中,要修改指定字段,可以使用@Transactional注解来保证事务的一致性,并使用@Modifying注解来标识该方法是一个更新操作。然后使用JPQL或者原生SQL语句来执行更新操作。1. 使用JPQL进行更新操作:java@T
2023-10-18

JPA 2.0动态查询机制Criteria API怎么用

小编给大家分享一下JPA 2.0动态查询机制Criteria API怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!自从 JPA 于 2006 年首次被引入之
2023-06-17

怎么使用JPA自定义SQL查询结果

本篇内容介绍了“怎么使用JPA自定义SQL查询结果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JPA自定义SQL查询结果很多时候都会遇到自
2023-06-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录