我正在开发 Springboot 应用程序,需要使用 spring-boot-starter-data-jpa 将数据存储到 redshift。
但是我无法实现 redshift 和我的 springboot 应用程序之间的连接。
这是我对 pom.xml 的依赖:
lets=input()
guess=input()
i = 0
for x in guess:
if x == lets[i]:
i += 1
if i >= len(lets): break
if (i == len(lets)):
print("Yes")
else:
print("No")
我的应用程序属性
<dependency>
<groupId>com.amazon.redshift</groupId>
<artifactId>redshift-jdbc42</artifactId>
<version>1.2.43.1067</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.3.7.RELEASE</version>
</dependency>
我的 Java 模型类:
spring.datasource.url=jdbc:redshift://hostaddress
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=com.amazon.redshift.jdbc.Driver
spring.jpa.hibernate.ddl-auto = create
异常堆栈跟踪:
@Entity
@Table(schema = "public", name = "SampleModel")
public class SampleModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private int year;
private int month;
private BigDecimal price;
private BigDecimal total;
}
有没有人遇到过这个问题或知道如何解决这个问题?
答案 0 :(得分:0)
您的连接没有问题 - 您已成功连接。但是您的应用程序正在尝试从 information_schema.sequences
表中读取数据,该表在 Redshift 中不存在。
看起来您的 JPA 对象的标识符绑定到序列,并且您使用的是 PostgreSQL 方言。您的应用将尝试通过读取/创建序列来初始化对象,但 Redshift 不支持序列。
我不确定您要实现的目标,但我认为在 Redshift DB 上进行 ORM 映射不是一个好主意(可能这就是 Redshift 没有 Hibernate 方言的原因)。