[解決済み] Spring Boot spring.datasource.schema VS spring.jpa.properties.hibernate.default_schema
2022-02-12 14:05:14
質問
最近、Webアプリの開発でSpring Bootを使い始めました。
これは、私の.propertiesファイルの内容です。
#data source configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/sampledb
spring.datasource.schema=sample
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.minimumIdle=3
spring.datasource.maximumPoolSize=5
#jpa properties configuration
#spring.jpa.show-sql=false
spring.jpa.databasePlatform=org.hibernate.dialect.PostgreSQL82Dialect
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.hibernate.ddl-auto=validate
#spring.jpa.properties.hibernate.default_schema=sample
この部分は私のエンティティクラスです。
@Entity
@Table(name = "sample_info")
public class SampleInfo implements Serializable{
private Long id;
private String code;
private Long serialNumber;
@Id
@GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "sample_info_seq_gen"
)
@SequenceGenerator(
name = "sample_info_seq_gen",
sequenceName = "sample_info_seq",
allocationSize = 1
)
@Column(name = "id")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
上記の.propertiesに基づき、Spring Data JPAリポジトリを使用して新しいSampleInfoを保存しようとすると、常にエラーシーケンス "sample_info_seq"not foundが発生することが問題です。
spring.datasource.schema=sample をコメントし、spring.jpa.properties.hibernate.default_schema=sample をアンコメントすると、すべて正常に動作します。
この2つの違いがわかりません、どなたか教えてください。
解決方法は?
spring.datasource.schemaは、Spring bootがSQLを含むファイルをデータベースに読み込むために使用します。これを使うと、Postgresはデフォルトの'public'スキーマを使いたいのだと勘違いしてしまいます。
spring.jpa.properties.hibernate.default_schema Postgres のどのスキーマを使用したいかを Hibernate に伝えます。この例でこれを設定すると、Postgres は 'sample' スキーマを使用します。
関連
-
[解決済み】Hibernateの問題 - "マッピングされていないクラスをターゲットにした@OneToManyまたは@ManyToManyの使用"
-
[解決済み] org.hibernate.PersistentObjectException: 永続化するために渡されたデタッチド・エンティティー
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
[解決済み] Another エンティティのマッピングでカラムが繰り返されるエラー
-
問題解決:ロール例外のコレクションを遅延して初期化することに失敗しました。
-
エラー バッチアップデートが予期しない行数を返しました。
-
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 解決法
-
[解決済み] Spring MVC + Hibernate: ロードするためのidが必要
-
[解決済み] not-nullプロパティは、NULL値または一時的な値を参照します。
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DTOからエンティティへ、エンティティからDTOへ
-
[解決済み] org.hibernate.PersistentObjectException: 永続化するために渡されたデタッチド・エンティティー
-
[解決済み] Another エンティティのマッピングでカラムが繰り返されるエラー
-
[解決済み] ConfigurationException: プロジェクトのルート・フォルダに cfg.xml リソース [hibernate.cfg.xml] が見つかりませんでした。
-
[解決済み] Spring Boot spring.datasource.schema VS spring.jpa.properties.hibernate.default_schema
-
[解決済み] Spring HibernateのDataIntegrityViolationExceptionを解決するにはどうすればよいですか?
-
PersistentObjectException: 永続化例外に渡された離脱したエンティティ
-
トランザクションのためにHibernateセッションを開くことができず、データベース接続タイムアウトの解決法
-
[解決済み] Spring MVC + Hibernate: ロードするためのidが必要
-
hibernate exception "Found shared references to a collection" (Reprint)