[解決済み] org.hibernate.tool.schema.spi.CommandAcceptanceException: SpringBoot での h2 と JPA による JDBC 文での DDL 実行エラー
2022-03-04 16:07:52
質問
h2データベースとJPAでspring bootを実行中に、以下のエラーが発生しました。
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.2.17.Final.jar:5.2.17.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) [hibernate-core-5.2.17.Final.jar:5.2.17.Final]
その原因は以下の通りです。
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE EXCHANGE_VALUE (ID INTEGER NOT NULL, CONVERSION_MULTIPLE DECIMAL(19,2), FROM[*] VARCHAR(255), PORT INTEGER NOT NULL, TO VARCHAR(255), PRIMARY KEY (ID)) "; expected "identifier"; SQL statement:
create table exchange_value (id integer not null, conversion_multiple decimal(19,2), from varchar(255), port integer not null, to varchar(255), primary key (id)) [42001-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) ~[h2-1.4.197.jar:1.4.197]
at org.h2.message.DbException.getSyntaxError(DbException.java:217) ~[h2-1.4.197.jar:1.4.197]
私のHibernateクラス
import java.math.BigDecimal;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Exchange_Value")
public class ExchangeValue {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String from;
private String to;
private BigDecimal conversionMultiple;
private int port;
public ExchangeValue() {
}
public ExchangeValue(String from, String to, BigDecimal conversionMultiple) {
super();
// this.id = id;
this.from = from;
this.to = to;
this.conversionMultiple = conversionMultiple;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
application.properties は以下の通りです。
spring.application.name=currency-exchange-service
server.port=8000
spring.jpa.hibernate.ddl-auto= create-drop
ただ、コードに何が欠けているのか知りたいのです。spring.jpa.hibernate.ddl-auto= create-dropを追加してみましたが、役に立ちませんでした。
どうすればいいですか?
shubh. エンティティフィールドの名前は
SQL reserved keywords
,
そのため、フィールド名を変更する場合は
name
属性に
@Column Annotation
(これはDATABASEのエイリアス名を与えるものです)
@Column(name="valueFrom")
private String from;
@Column(name="valueTo")
private String to;
private BigDecimal conversionMultiple;
private int port;
関連
-
[解決済み] Spring Batchのステップスコープの仕組み
-
[解決済み] CommandLineRunnerの実行に失敗しました - Spring Batch
-
ServletContextリソース[/WEB-INF/springmvc-servlet.xml]を開くことができませんでした。
-
レスポンスボディとレスポンスエンテイティ
-
[解決済み] postmanでサポートされていないメディアタイプ
-
[解決済み] Spring DataでOrderByをfindAllで使用する方法
-
[解決済み] Spring.jpa.hibernate.ddl-autoプロパティは、Springで具体的にどのように動作しますか?
-
[解決済み】Springでは、オプションのパス変数を作ることができますか?
-
[解決済み] Spring MVC RESTコントローラでHTTPヘッダ情報にアクセスする方法は?
-
[解決済み] Spring 3 RequestMapping。パスの値を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DispatcherServletの名前[duplicate]でURI...を持つHTTPリクエストのマッピングが見つからない。]
-
[解決済み] <mvc:default-servlet-handler />の必要性と用途は何ですか?
-
[解決済み] Junit with Spring - TestContextManager [ERROR] TestExecutionListenerを許可する際に例外をキャッチしました。
-
SpringBoot の例外です。クラスパスリソースに定義された名前 'entityManagerFactory'を持つビーンの作成エラー
-
[解決済み] HikariPool-1 - プールの初期化で例外が発生する
-
[解決済み] java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
-
Springフレームワークを使用したアイデアで、コンテキストの初期化中に例外が発生し、リフレッシュの試みがキャンセルされる問題
-
[解決済み】SpringのGA、RC、M2リリースの違いは何ですか?
-
[解決済み] Spring Test & Security: 認証をモック化する方法とは?
-
[解決済み] Spring Resttemplateの例外処理