2017-11-08 9 views
0

- skip-clientのいずれかのオプションを使用してJHipsterアプリケーションを作成しようとしました。 また、私はLiquibaseを無効にしました。私は、端末上で実行され、test.jhファイルにこれを入れJHipster - JDLのエンティティ、予期せぬ@Columnアノテーションを持つJavaエンティティクラス

entity Test { 
    id String, 
    hireDate ZonedDateTime 
} 

: jhipsterインポート-JDL test.jhを

ときI

は、その後、私は次のようにテストエントリを作成しました

@Id 
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") 
@SequenceGenerator(name = "sequenceGenerator") 
private Long id; 

しかしHIREDATEがで注釈された:アプリのJavaソースに見て、私はidが自動的に私は信じている主キーとして認識された、Test.javaクラスを発見しました:

@Column(name = "hire_date") 
private ZonedDateTime hireDate; 

なぜですか?

データベース内のこのエンティティのビュー「テスト」を作成しました。また、列は「Id」および「HireDate」です。

しかし、自動的に@Columnアノテーションが追加された場合、列名、たとえば「hire_date」は私のビューには存在しません。

どういうわけかこれを解決できますか?私はJHipsterジェネレータに関連するものか、Spring Bootと関連するものか?

そしてそこにもう一つの問題は、次のとおりです。

@Size(max = 100) 
@Column(name = "jhi_type", length = 100) 
private String type; 

Javaフィールドに名前を付けるには "タイプは" OKようだが、JHipsterは@Column

のための "jhi_type" を作る乾杯

答えて

1

これらはJHipsterあります命名規則:カラムのヘビケースとJavaエンティティフィールドのキャメルケース。あなたがLiquibaseを使用していたなら、これはうまくいきました。

ジェネレータでこの動作を設定することはできません。

liquibaseを無効にしても、JHipsterの命名規則に従わないビューをデータベースに作成したという事実は変わりません。 JHipsterは、列の名前をこのように指定するコードを生成します。これらの規則を尊重するか、生成されたコードを手動で変更します。

また、jhispter-db-helper moduleを試すこともできますが、このプロジェクトは放棄されたようです。

+0

わかっていればわかりません:jhipster import-jdl を実行すると、Liquibaseを使用しようとしていますか? Liquibaseが無効になっていない場合(これを無効にするにはapplication.ymlにinclude:no-liquibaseを追加します)、エンティティJavaクラスのフィールド名はJDL(hireDate)で定義されているものと同じですが、@Columnアノテーション(hiredDate)?私はLiquibaseを無効にしているので、jhipster import-jdlはLiquibaseを使用できないため、あなたが書いたようにJHipsterの命名規則を使用しますか? – neblaz

関連する問題