Java org.h2.message.DbException.getJdbcSQLException
我有一个实体没有在Postgres数据库中创建表。实体如下所示:Java org.h2.message.DbException.getJdbcSQLException,java,hibernate,jpa,Java,Hibernate,Jpa,我有一个实体没有在Postgres数据库中创建表。实体如下所示: @Getter @Setter @ToString @Entity @Table(name = "rule_history") @AllArgsConstructor @NoArgsConstructor @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class) public class RuleHistory extends A
@Getter
@Setter
@ToString
@Entity
@Table(name = "rule_history")
@AllArgsConstructor
@NoArgsConstructor
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
public class RuleHistory extends Auditable<UUID> {
@Id
@GeneratedValue
@Column(name = "id")
private UUID id;
@JsonBackReference
@ManyToOne
@JoinColumn(name = "ruleExecution_id")
private RuleExecution ruleExecution;
@Schema(description = "The Rule that was evaluated")
@OneToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "rule_id", referencedColumnName = "id")
private Rule rule;
@Column(name = "rule_entity")
private RuleTarget ruleTarget;
@Column(name = "entity_id")
private UUID entityId;
@Type(type = "jsonb")
@Column(name = "rule_response" ,columnDefinition = "json")
private String ruleResponse;
}
这是项目中使用的application.properties文件:
logging.level.web=TRACE
logging.level.org.springframework.web=TRACE
springdoc.api-docs.path=/api-docs
springdoc.swagger-ui.path=/swagger-ui.html
springdoc.swagger-ui.disable-swagger-default-url=true
spring.datasource.url=jdbc:postgresql://localhost:5432/cilling
#spring.datasource.url=jdbc:postgresql://postgres:5432/cilling
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=false
management.endpoints.web.exposure.include=health,info
management.endpoints.web.exposure.exclude=
management.endpoint.health.show-details=always
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
server.port=8080
spring.security.securityEnabled=1
spring.api.security.jwt.secret=d-83scwew3435f
spring.api.security.jwt.expirationInMinute=1
spring.api.security.jwt.refreshExpirationInMinute=9000000
spring.sendgrid.api-key=d-83scwew3435f
spring.monetizenow.io.mail.sender.email=example@example.com
spring.monetizenow.io.mail.sender.name=Team
user.reg.email.verify.sengrid.template.id=d-83scwew3435f
user.reg.email.verify.base.url=http://localhost/verify-email
user.pwd.reset.sengrid.template.id=d-83scwew3435f
user.password.reset.email.base.url=http://localhost/password-reset
user.otp.email.sengrid.template.id=d-83scwew3435f
file.upload-dir=/opt/DonytyzAppPhoto
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=2KB
spring.servlet.multipart.max-file-size=500KB
spring.servlet.multipart.max-request-size=500KB
如何更正它?堆栈跟踪指出您正在使用H2数据库驱动程序。如果您使用的是PostgreSQL数据库管理系统,您应该使用PostgreSQL自己的JDBC驱动程序。这是我在application.properties文件中的内容:
spring.datasource.driver class name=org.PostgreSQL.driver
,因此我没有使用您提到的H2数据库驱动程序。请包括application.properties,以了解为什么在使用时会显示与H2相关的消息PostgreSQL@samabcde我更新了问题并提供了application.properties文件。堆栈跟踪指出您正在使用H2数据库驱动程序。如果您使用的是PostgreSQL数据库管理系统,您应该使用PostgreSQL自己的JDBC驱动程序。这是我在application.properties文件中的内容:spring.datasource.driver class name=org.PostgreSQL.driver
,因此我没有使用您提到的H2数据库驱动程序。请包括application.properties,以了解为什么在使用时会显示与H2相关的消息PostgreSQL@samabcde我更新了问题并提供了application.properties文件。
Caused by: org.h2.jdbc.JdbcSQLException: Unknown data type: "JSON"; SQL statement:
logging.level.web=TRACE
logging.level.org.springframework.web=TRACE
springdoc.api-docs.path=/api-docs
springdoc.swagger-ui.path=/swagger-ui.html
springdoc.swagger-ui.disable-swagger-default-url=true
spring.datasource.url=jdbc:postgresql://localhost:5432/cilling
#spring.datasource.url=jdbc:postgresql://postgres:5432/cilling
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=false
management.endpoints.web.exposure.include=health,info
management.endpoints.web.exposure.exclude=
management.endpoint.health.show-details=always
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
server.port=8080
spring.security.securityEnabled=1
spring.api.security.jwt.secret=d-83scwew3435f
spring.api.security.jwt.expirationInMinute=1
spring.api.security.jwt.refreshExpirationInMinute=9000000
spring.sendgrid.api-key=d-83scwew3435f
spring.monetizenow.io.mail.sender.email=example@example.com
spring.monetizenow.io.mail.sender.name=Team
user.reg.email.verify.sengrid.template.id=d-83scwew3435f
user.reg.email.verify.base.url=http://localhost/verify-email
user.pwd.reset.sengrid.template.id=d-83scwew3435f
user.password.reset.email.base.url=http://localhost/password-reset
user.otp.email.sengrid.template.id=d-83scwew3435f
file.upload-dir=/opt/DonytyzAppPhoto
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=2KB
spring.servlet.multipart.max-file-size=500KB
spring.servlet.multipart.max-request-size=500KB