予想作成していないHibernateは+、私は(特に)これらの答えを知ってる:春データ-JPAが表
- Hibernate not creating Table automatically in spring boot using postgresql
- Unable to get Spring boot to automatically create database schema
- Spring Boot + Hibernate + Postgres - not creating tables
まだ、テーブルの自動作成は機能しません。
は私がcommon application properties
期待される結果からHibernate
、Spring
の異なるバージョン、JpaBaseConfiguration
からでも実装クラスJpaConfig
、および追加服従のプロパティを使用しました:hbm2ddlスキーマの更新を実行
実績結果:
実行hbm2ddlスキーマ・エクスポート
私はorg.hibernate.cfj.Configuration Iterator<Table> getTableMappings()
見ますが、このメソッドの戻りemtyリストではなくクラス - マッピング>テーブル
すべてのヘルプは次のようになります感謝。
Application.yml:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/task-manager
username: postgres
password: password
schema: public
jpa:
generate-ddl: true
hibernate:
naming-strategy: ru.ssau.common.naming_strategy.CustomNamingStrategy
ddl-auto: create-drop
logging:
level:
org:
hibernate:
SQL: DEBUG
type:
descriptor:
sql:
BasicBinder: TRACE
プロパティdriverClassNameを追加すると、それを解決しません:
マイエンティティ:コンソールから
@Entity(name = "simple_user")
public class User extends PersistentObject {
@Column(unique = true, nullable = false)
private String nickname;
@OneToOne
@JoinColumn(name = "user_account_id")
private UserAccount userAccount;
public User() {
}
public User(String nickname) {
this.nickname = nickname;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public UserAccount getUserAccount() {
return userAccount;
}
public void setUserAccount(UserAccount userAccount) {
this.userAccount = userAccount;
}
}
Hibernateの出力:
HHH000412: Hibernate Core {4.3.11.Final}
HHH000206: hibernate.properties not found
HHH000021: Bytecode provider name : javassist
HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL9Dialect
HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
HHH000397: Using ASTQueryTranslatorFactory
HHH000227: Running hbm2ddl schema export
HHH000230: Schema export complete
はい、私は、このプロパティを追加しましたが、それは:( – Dmitry
は、二回、これを実行するために必要なことがあります動作しません。(あなたがドロップされていない、あなたの前回の実行から、データベース構造を持っていました、 。それにもかかわらずの休止後、あなたはあなたのアプリケーションを停止して)サイクル構造を作成する必要があり、次回の起動中に動作します –
をドロップDDL-自動ルーチンは悪い習慣であり、テーブルが既に存在しているので、それほど起動時に休止状態では、データベース構造を作成しようとしますが、失敗します。 、私の視点から。私は個人的に私のユニット・テスト中にこれを使用しています。そして、生産と統合テストのために私は非常にプロジェクトに投入することをお勧めしますLiquiBaseをし、使用しません。 –