I am using Spring Boot with PostgreSQL. I want to save my Entity objects in the database but when I try to do so, an error message appears:
spring | 2021-10-11 08:08:59.634 WARN 1 --- [ Thread-40] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42703
spring | 2021-10-11 08:08:59.634 ERROR 1 --- [ Thread-40] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: column "differencetolexifipricescore" of relation "rtdatabase" does not exist
I was using Spring with H2 and everything was working fine. I then migrated to Docker + PostgreSQL.
My Entity code:
@Data
@Entity
@Table(name="RTDatabase")
public class MarketPrice {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
long ID;
@Column(name="RIC")
String RIC;
@Column(name="name")
String name;
@Column(name = "bid_issuer")
Float bid_issuer;
@Column(name = "ask_issuer")
Float ask_issuer;
@Column(name = "ask_kech")
Float ask_kech;
@Column(name = "bid_kech")
Float bid_kech;
@Column(name = "isin")
String ISIN;
@Column(name = "decenter")
Float decenter;
@Column(name = "kech_margin")
Float kech_margin;
@Column(name = "kech_spread")
Float kech_spread;
@Column(name = "issuer_spread")
Float issuer_spread;
@Column(name = "denomination")
Float denomination;
@Column(name = "bid_only")
boolean bid_only;
@Column(name = "publishing")
String publishing;
@Column(name = "price_expression")
String price_expression;
@Column(name = "NAV")
Float NAV;
@Column(name = "average_score")
Float average_score;
@Column(name = "force_publish")
boolean force_publish;
@Column(name = "CUSIP")
String CUSIP;
@Column(name = "published")
boolean published;
@Column(name = "product_type")
String product_type;
@Column(name = "creator")
String creator = "RTV";
@Column(name = "timestamp")
String timestamp;
@Column(name ="RTV")
boolean RTV=true;
@Column(name="currency")
String currency;
@Column(name = "distanceToBandsScore")
Float distanceToBandsScore;
@Column(name = "differenceToLexiFiPriceScore")
Float differenceToLexiFiPriceScore;
@Column(name = "metricC")
Float metricC;
@Column(name="volatility")
Float volatility;
My Postgres configuration file:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Database paramètres de connection -->
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbc:postgresql://db:5432/compose-postgres</property>
<property name="connection.username">compose-postgres</property>
<property name="connection.password">compose-postgres</property>
<!-- JDBC connection pool paramètres de connection -->
<property name="connection.pool_size">5</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>
<property name="spring.jpa.hibernate.ddl-auto">update</property>
<property name="spring.jpa.hibernate.naming.implicit-strategy">org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl</property>
<!-- Echo le SQL sur stdout -->
<property name="show_sql">false</property>
<property name="format_sql">false</property>
<property name="use_sql_comments">false</property>
<!-- Contexte de la session actuelle -->
<property name="current_session_context_class">thread</property>
<!-- Configuration dbcp connection pool -->
<property name="hibernate.dbcp.initialSize">5</property>
<property name="hibernate.dbcp.maxTotal">20</property>
<property name="hibernate.dbcp.maxIdle">10</property>
<property name="hibernate.dbcp.minIdle">5</property>
<property name="hibernate.dbcp.maxWaitMillis">100</property>
<mapping class="com.kepler.solutions.valuation.model.MarketPrice" />
</session-factory>
</hibernate-configuration>
I am also adding configuration parameters in my docker-compose.yml
version: '2'
services:
spring:
image: 'realtime:latest'
container_name: spring
depends_on:
- db
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/compose-postgres
- SPRING_DATASOURCE_USERNAME=********
- SPRING_DATASOURCE_PASSWORD=*********
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
volumes:
- /home/vagrant/valorisation-2.0:/app
command: ["java", "-jar", "rtv-1.jar"]
mem_limit: 10g
mem_reservation: 10g
db:
image: 'postgres:13.1-alpine'
container_name: db
environment:
- POSTGRES_USER=*****
- POSTGRES_PASSWORD=*****
Any help on that error? Many thanks in advance!