問題タブ [schemaexport]
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.
nhibernate - 流暢なnhibernate記述から構築されたSQLiteDBは、null許容ではない列を生成します
テスト用のインメモリSQLiteDBを作成するための次のコードがあります。
これはほとんどの場合正常に機能しているように見えますが、残念ながら、すべての列がnull許容ではないものとして作成されています。
たとえば、2つのクラスがあります。
InternalFund
およびExternalFund
。両方とも同じテーブルから継承しFund
、両方とも同じテーブルに永続化します。
ExternalFund
列がありますがManager_ID
、InternalFund
ありません。InternalFund
残念ながら、これはSQL例外をスローするため、永続化できないことを意味します。
テストに参照整合性は必要ないので、すべての列をnull許容にすることができれば幸いです。
誰かがこれを行う方法を知っていますか?
ありがとう
Stu
nhibernate - SchemaExportと参照整合性制約のオフ
呼吸器コードでテストを実行すると、テーブルが削除および作成され、を使用したテスト用に新しいデータが追加されます。
new SchemaExport(_configuration).Execute(false, true, false);
ただし、これは参照整合性を強制します。本番環境ではこれで問題ありませんが、テストではこれをオンにしないようにする必要があります。
上記のコードでテーブルを作成するときにそれらを無効にする方法はありますか?
database - Hibernate の 1 対多のマッピング エラー - mappingBy が不明なターゲット エンティティ プロパティのエラーを参照しています
ドメイン オブジェクトからテーブルを作成して 1 対多のマッピングをテストしようとしていますが、mappedBy reference an unknown target entity property というエラーが表示されます。誰か見てもらえませんか?
ありがとう
従業員.java
FulltimeEmployee.java
契約従業員.java
FlightBenefit.java
従業員のステータス
hibernate.cfg.xml
エラー スタック トレース
お返事ありがとうございます。私はあなたが言及した変更を行い、session.save(flightBenefit)を Main.java に追加し、@JoinColumn アノテーションを使用して insertable = false、updatable = falseを追加するなど、他のいくつかの変更も行いました。Employee テーブルは作成されていますが、FlightBenefit は作成されておらず、エラーが表示されています
原因: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: テーブル 'TestSchema.flightbenefit' が存在しません
以下は、変更とスタックトレースが更新されたクラスです。
Main.java
フルタイム従業員.Java
FlightBenefit.java
スタックトレース
hibernate - H2 を含む SQL ステートメントの構文エラー
H2 データベースのいくつかの SQL ステートメントでエラーが発生しました。これらの sql ステートメントは Hibernate から取得されSchemaExport
ます: SQL ステートメントは次のとおりです。
たとえば、この行は H2 では実行されません。
エラーは言う:[ERROR] Caused by org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement : CREATE TABLE CONTACTS ( .... <<The same code from above>>
この SQL ステートメントを H2 で実行するにはどうすればよいですか。
spring - Hibernate をアップグレードした後の奇妙な自己参照制約違反
hibernate-entitymanager
Springアプリケーションで使用しています。Hibernate のバージョンをアップグレード中です。正確なバージョンに絞り込みました: 4.2.1.Final から 4.2.2.Final (またはそれ以上) にアップグレードすると、単体テストを開始してデータベースを作成しようとすると、次のエラーが発生します。スキーマ:
このエラーはシステムの正常な動作を妨げるものではありませんが、システムにそのような厄介なエラーがあり、その説明がないため、明らかに本番環境に移行できません。
これは、テーブルがそれ自体に対して外部キー関係を持っているように見えIncident
ますが、まったくそうではありません。
ここでエンティティの本質をコピーしてみます。Incident
これに光を当てるために皆さんを助けるために他に何か提供できることがあれば教えてください. 私はそれを何時間もいじりましたが、実りがありませんでした。あなたの助けをいただければ幸いです。
mysql - MySQL のデフォルトの主キー生成戦略は何ですか
AUTO_INCREMENT
MySQL のテーブルに新しい行が挿入されたときに、属性を使用して主キーを生成しています。
MySQL のデフォルトの主キー生成戦略とは何か、またそれがどのように機能するのかを理解するのに誰か助けてもらえますか?
EDIT
Hibernate にはnative
、基盤となるデータベースの機能に応じて ID、シーケンス、または hilo を選択する識別子生成戦略があります。Javaデータ型のプロパティに対してhibernate.hbm2ddl.auto=update
生成さid BIGINT(20) NOT NULL AUTO_INCREMENT
れたMySQLを使用しました。id
Long
AUTO_INCREMENT
ツールを使用したときにHibernateがどのように選択したかを理解しようとしていSchemaExport
ます。AUTO_INCREMENT
MySQL のデフォルトの主キー生成戦略ですか?
c# - NHibernate SchemaExport が ntext 列を作成しない
SchemaExport
データベースとSQLスクリプトを生成するために使用する簡単なツールを作成します。単純なエンティティでは、1 つの文字列プロパティがSQL ServerDescription
の列であると予想されますが、実際にはです。ntext
nvarchar(255)
どの部分が間違っていたのかわかりません。アドバイスをいただければ幸いです。
以下は私のコードです。コンソールアプリを作成し、NHibernate
実行するナゲットパッケージを追加するだけです。