Maxisvest的博客

技术 生活 原创


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

oracle遇到的坑

发表于 2018-10-06 | 分类于 java 阅读次数:

1.jpa如果打开spring.jpa.hibernate.ddl-auto=update的话,会把给定长度比较长的字段更新为LONG类型,但是LONG类型在oracle中,一张表只能存在一个列
解决办法就是手动把列类型修改成CLOB,或者使用flyway

2.jpa在做update的时候,如果报错
ORA-22295: 不能把超过 4000 字节数据绑定到语句 1 中的 LOB 和 LONG
就是说不能同时update一张表中的LONG类型和BLOB/CLOB类型
解决办法是同一条sql,或者jpa的save中,只update一个LONG字段,或者多个BLOB/CLOB字段

3.如果报错
ORA-01502: 索引 'TEST0709.SYS_C0011897' 或这类索引的分区处于不可用状态
解决办法是使用查询
select * from user_indexes where status <> 'VALID';
查询到所有失效的索引,然后通过下面语句(替换要重建的索引名)来重建索引
alter index index_name rebuild;

springboot 特别功能

发表于 2018-07-17 | 分类于 java 阅读次数:

springboot可以指定外部配置文件

如果使用jar包启动,需要将配置文件放在和jar包同级的config文件夹下,如果在jar包内没有指定启动的配置文件名称,则config文件夹下的配置文件名必须为application.properties。如果使用tomcat启动springboot,则在tomcat的lib目录下新建config目录,操作步骤同上。
springboot中可以指定激活多个配置文件,spring.profiles.active=dev,prod,像这样使用逗号配置文件名隔开即可。

springboot 配置文件外置

当然,还有一种可以读取配置文件的地方,就是启动应用的地方(启动tomcat时,你当前所在的目录,可以通过pwd看在哪里,如果配置文件在bin目录,然后通过脚本启动,必须先cd到bin目录,再执行启动),将配置文件名固定为application.properties,可以将其中的内容覆盖至webapps下面启动的springboot项目中的配置文件,只有项目中的配置文件没有使用spring.profiles.active指定配置文件或仅指定default时生效,指定后,启动应用的地方的配置文件就不能生效了,需要注意的是,这种方式启动的tomcat是将这个配置文件共享的,包括由tomcat内springboot项目使用java -jar启动的应用都会受到这个配置文件的影响

flyway

发表于 2018-06-22 | 分类于 java 阅读次数:

flyway用于数据库脚本升级的管理工具

flyway在第一次使用的时候需要一个元数据表,叫做schema_version. 用来记录数据库迁移(或者更新的历史),这张表不需要手动建立,flyway会自己生成这张表,但是需要注意的是,这张表的首行必须是一条baseline,就像这样一样

这行可以在springboot的配置文件中加入,就像这样

它是一个基行,从他开始记录

表中version字段为主键。
约定大于配置,在flyway中,有好几种数据库升级的方式,可以使用sql脚本,也可以使用java的方式,约定java类用这样的方式命名,最后会被flyway解析成3.11就像第一张图的样子,类或者sql脚本放在scr/main/java/db/migration文件夹下,这是约定

阅读全文 »

spring data jpa 遇到的坑

发表于 2018-02-26 | 分类于 java 阅读次数:

更新了你不想更新的实例

首先findOne()方法找到一个实体,暂且叫A,实体包含Id属性和一个引用类型的数据
然后new一个这个实体,叫B,将那个引用类型稍作修改后set到B中
save()这个实体B

阅读全文 »
12345
小于同学

小于同学

技术 生活 原创

50 日志
14 分类
35 标签
E-Mail
© 2016 – 2022 小于同学
总访客量 合计阅读数