問題タブ [hbm2ddl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
149 参照

hibernate - メンバのない列

Hibernate を使用して、抽象クラスに追加の列を作成しようとしていますが、このクラスに新しいメンバーを追加することはできません (大規模なメモリ消費)。Hibernate にスキーマを作成させる必要があります (開発段階hibernate.hbm2ddl.auto=update)。

メンバa,b,cを持つMyClassエンティティ クラスがあり、Hibernate に列dも作成させたいとします。この列はメモリ内では必要なく、 MyClassインスタンスの保存/読み込み時に HQL/SQL を介してのみアクセスされます。

これはできますか?

注:
1. Hibernate 3.6.0 Final + Oracle 11g + pure Java
2. 注釈を使用し、xml ファイルは使用しません

0 投票する
1 に答える
651 参照

hibernate - Hibernate hbm2ddl 出力にカスタム コメントを追加するにはどうすればよいですか?

hbm2ddl 出力によって生成された sql に SQL ヘッダー コメントを追加できるかどうかに興味がありました。

具体的には、生成された .sql ファイルに出力される Dialect オブジェクトに、生成されたバージョン文字列を追加できればいいのですが。

0 投票する
1 に答える
800 参照

hibernate - hbm2ddlがinitsqlsをインポートしないようにするにはどうすればよいですか?

前提条件:

  1. クラスパスにimport.sqlファイルがあります。
  2. プロパティ「hibernate.hbm2ddl.auto」は「create」に設定されています。

次に、インポートファイルを削除したり、「hibernate.hbm2ddl.auto」プロパティを変更したりせずに、hbm2ddlがinitsqlsをインポートしないようにするにはどうすればよいですか。

0 投票する
1 に答える
856 参照

java - LiquibaseでHibernatehbm2ddlの「作成」動作を模倣するにはどうすればよいですか?

私はしばらくの間liquibase1.9.5を使用していて、テーブルを作成してフィクスチャをロードする休止状態のhbm2ddl戦略に取って代わりました。これはMavenプロジェクトであり、hsqldbを使用しているため(ファイルcreate = trueを使用)、アプリケーションをテストするたびに新しいデータベースを使用できるように、ターゲットフォルダーにdbを作成するだけです。私が気付くまでは問題なく動作します:

1 mysqlデータベースを使用して統合テストを実行するときに、データベースを再作成する必要があります。

2 Maven以外のプロジェクトでも、間違いなく同じソリューションが必要になります。

では、基本的に、hbm2ddlではなくliquibaseを使用する場合、データベースを削除して作成するにはどうすればよいですか?

0 投票する
2 に答える
1052 参照

mysql - Hibernate の hbm2ddl に、@Enumerated 注釈付きフィールドの MySQL 列挙列を追加するように指示します。

次のような Java コードで hbm2ddl を使用して DB テーブルを作成しています。

正常に動作しますが、「タイプ」の場合、VARCHAR 列が作成されます。つまり、DDL コードは次のようになります。

しかし、私がしたいのはこれです:

これは Hibernate で宣言することは可能ですか?

または、SchemaUpdate を拡張し、列挙型フィールドの変更スクリプト部分を好きなようにレンダリングするメソッドを上書きする方法はありますか?

背景: プロジェクトの PHP 部分で同じデータベースが使用されており、無効な値が挿入されないようにしたいと考えています。

0 投票する
1 に答える
12765 参照

hibernate - MavenHibernate3プラグインを使用したスキーマ生成

単純なHibernate+Mavenプロジェクトをセットアップしようとしています。私は、休止状態でのJavaプレゼンスの第2章で述べた手順に従います(Antの代わりにmavenを使用しているのはdiffのみです)。ただし、 maven hibernate 3プラグインを使用してスキーマを生成しようとすると、必要なテーブルを作成できないようです。

コードとリソース

POM.xml

`

出力ログ

MESSAGESテーブルにアクセスしようとしているメインクラスの出力(本で言及されているように)。

出力の処理

プロセスクラスの目標の出力

Hibernate構成

私のhibernate.cfg.xml

0 投票する
1 に答える
5960 参照

java - Hibernates hbm2ddl.auto=validate および MySQL テキスト型の問題

継承したプロジェクトで hbm2ddl.auto=validate を有効にしようとしました。text または mediumtext (MySQL データベース) にマップされた String プロパティに対して、間違った列タイプの例外が多数発生するようになりました。

マッピングは次のとおりです。

また、データベースのデータ型は「テキスト」(utf8_general_ci) です。

これは正しいマッピングであると思いましたが、Hibernate はテキストが見つかったが長いテキストが必要であると不平を言っています。

休止状態の構成を確認しましたが、ダイアログが指定されていませんでした。私は追加しました

しかし、それは違いを生むようには見えません。

columnDefinition="text" をマッピングに追加できることはわかっていますが、多くの場所でそれを行う必要があり、IMHO マッピングは既に正しいはずです。それで、何がうまくいかないのですか?何か案は?

ありがとう

0 投票する
3 に答える
9939 参照

mysql - Hibernate で Java バイト [] を MySQL バイナリ (64) にマッピングする

Hibernate でバイト配列を MySQL データベースにマッピングするのに問題があり、明らかな何かが欠けているのではないかと考えていました。私のクラスはおおよそ次のようになります。

MySQL 5.5 では、テーブルは次のように定義されます。

Hibernate 3.6.2 のマッピングは次のようになります。

検証のみに hbm2ddl を使用していますが、アプリケーションをデプロイすると次のエラーが表示されます。

マッピングで type="binary" を使用しても、Hibernate が列の型が (tinyblob ではなく) バイナリであることを期待しない場合、どうなるかわかりません。これをグーグルで検索しましたが、正確なエラーを見つけることができませんでした。同様のエラーの解決策は...

  1. <プロパティ>に「長さ」を指定します。これにより、Hibernate が期待する型が変わりますが、検出される「バイナリ」型ではなく、常に何らかの種類の blob になります。
  2. プロパティ要素で「型」を宣言する代わりに、列要素をネストして、それに sql-type 属性を与えます。それは機能しますが、バインディングが MySQL に固有のものにもなるため、可能であれば避けたいと思います。

この設定で、この不一致の原因となる何か目立ったものはありますか? 「blob」の代わりに type="binary" を指定すると、Hibernate がバイナリではなく blob を期待するのはなぜですか?

0 投票する
3 に答える
1518 参照

hibernate - 1つのJPAエンティティクラスに関連するすべてのテーブルの作成スクリプトを生成します

特定のエンティティクラスのテーブル作成スクリプトを生成したい。

hibernate(hbm2dllツール)を使用してすべてのクラスの完全なスクリプトを自動生成できます(JPA注釈付きエンティティクラスからデータスキーマを自動生成します)が、これをフィルタリングする方法がわからないため、1つのエンティティクラスに関連する部分のみ残っています。

あいさつ、ローレス

0 投票する
6 に答える
37119 参照

java - ブール値をHibernateでマッピングする

Hibernateで問題が発生しています。最近、hbm2ddlを検証するように設定しましたが、間違ったデータ型について多くの不満があります。ブール値を除くすべての問題を修正しました。

クラスにフィールドopenerがあり、次のようにマップされます。

openerはatinyint (4)で、値は1または0です。これまでのところ、タイプを変更しようとしましたが、役に立ちませんでした。また、hibernate.cfgで次の設定を使用してみました。

しかし、それでも同じエラーが発生します。私は何が間違っているのですか?

注:データベースにアクセスできません。