牢记一点,powerjob-server 只是一个用了 SpringDataJPA 的普通应用。遇到数据库相关的错误,网上以 SpringDataJPA + 相关堆栈关键字,大概率有解决方案。
1. PostgreSQL
- Caused by: org.postgresql.util.PSQLException: 大型对象无法被使用在自动确认事物交易模式
- JpaSystemException: Unable to access lob stream
如有类似错误可参考以下 ISSUE
- 如果 JPA 已经自动建表,请先删除 powerjob 相关的全部表
- 在配置文件中添加
spring.datasource.remote.hibernate.properties.hibernate.dialect=tech.powerjob.server.persistence.config.dialect.PowerJobPGDialect来启用 postgreSQL 专用方言处理器,重新启动 server & 自动建表。
2. Oracle
表名称不合法问题(oracle 数据库账号名称如(powerjob-product)不要出现字符 -,请使用 powerjob_product):
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'remoteEntityManagerFactory' defined in class path resource [tech/powerjob/server/persistence/config/RemoteJpaConfig.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: remotePersistenceUnit] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.GenericJDBCException: Error accessing index information: POWERJOB-PRODUCT.APP_INFO
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- Caused by: java.sql.SQLSyntaxErrorException: ORA-02289: 序列不存在
Oracle 数据库需要自己创建序列去处理主键自增,网上搜一搜,教程非常多。
create sequence native
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
cache 20;
3. 经典 ISSUE 收集
3.1. PG
PostgreSQL数据库连接配置样例:github.com/PowerJob/Po…
Unable to access lob stream/Unable to access lob stream 的详细分析与解决方案:github.com/PowerJob/Po…
oid类型列解决方法:github.com/PowerJob/Po…
PG13报错问题解决:github.com/PowerJob/Po…
3.2. Oracle
Oracle数据库问题详细分析与解决:github.com/PowerJob/Po…