問題タブ [legacy-database]

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 に答える
2135 参照

entity-framework-4 - 主キーの名前が異なる場合、TPT 継承モデルを使用するにはどうすればよいですか?

レガシ データベースに対して Entity Framework 4.1 を使用すると、複数形化されておらず、共通の主キーに異なる名前を使用する TPT 継承モデルのワーキング セットを生成できません。

以下に示すように、データベース テーブル Organization、Account、および Company を使用しています。

Account.AccountID と Company.CompanyID には、これらの列の値が Organization.OrganizationID にも含まれている必要があるという FK 制約があるため、Organization 行がないとどちらも存在できません。これらのテーブルを最初から設計していた場合、Account と Company の両方が代わりに OrganizationID を主キーとして使用します。

以下に示す単純な選択コードを使用しようとすると、エラーが発生します。

プロパティ 'OrganizationID' は、タイプ 'Company' で宣言されたプロパティではありません。Ignore メソッドまたは NotMappedAttribute データ注釈を使用して、プロパティがモデルから明示的に除外されていないことを確認します。有効なプリミティブ プロパティであることを確認してください。

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

grails - データマイニングのSQLクエリをGrailsの同等のものに変換しますか?

ログデータを表示するためのWebインターフェイスを構築したいと思います。これは、Grailsを使用して小さなWebアプリを構築する良い機会になるはずです。これは、私がかなり前から試したいと思っていましたが、今日の手動SQLクエリをに「変換」する方法を理解するのに苦労しています。 Grailsに使用できるもの。

Grails In Actionの本で、既存のデータテーブルをドメインクラスに後付けすることについての情報はあまり見つかりませんでした。だから私はいくつかの説明のためにそれをここに持ってきます:)

これは基本的に、今日ログに記録しているログテーブルのスキーマです。

hasMany = { logs: Log }ドメインクラスUserとHostをのようなマッピングで作成し、Logクラスをで作成するようなことをしているのを見ることができますbelongsTo = { user: User }が、特に数十万のログ行を処理する場合、これを効果的な方法で使用してデータをクエリする方法はわかりません。私は通常、"find the average time used for method='fooBar' and user='john_doe' the last 30 days"またはのようなデータに対してクエリを実行しています"count the number of rows where method='fooBaz' and host='localhost' from May to December"

このような情報をどのように取得しますか?ログエントリのマッピングを忘れて、テーブルに対してある種の直接SQL(HQL?)クエリを使用するだけですか、それともこの(私には知られていない)GORM獣をこのようなものに使用できますか?

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

sql-server - EntityFramework4.0非主キーを使用した多対多の関係

継承したレガシーMSSQLデータベースを使用して、EntityFramework4.0を使用して汎用リポジトリを構築しようとしています。かなりおなじみのシナリオ。

既存のアイテムのかなり長いリストにカテゴリ情報を追加する必要があります。

アイテムは同時に複数のカテゴリに属する​​ことができるので、CategoryMappingというマッピングテーブルを作成しました

データベース図

残念ながら、SchemaDefinitionCodeは一意ではなく、データベースで外部キー(FK)にすることはできません。

独自の部分クラスをDefinitionSchemaエンティティに追加しようとしましたが、インデックスが作成されていないため、パフォーマンスが大幅に低下します。テスト用のデモコード。これをロードするたびに新しいコンテキストを作成したくありません

次に、次のようなアイテムのリストを呼び出すことができます。

既存のデータベース構造を消去せずに、テーブルとマッピングを最も効率的な方法でリンクするにはどうすればよいですか?

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

django - ForeignKey フィールドの Django ゼロ値

私は非常に悪い設計のレガシーデータベースに取り組んでいます。一部のテーブルでは、外部キーを null にすることができるだけでなく (これは問題ありません)、0 にすることもできます。

これらのテーブルの 1 つをモデルにマップしました。テーブルで Null の場合は目的の None 値を返しますが、値が 0 の場合は例外が発生します。

値 0 を含む外部キーに対して None を返すようにする方法はありますか?

0 投票する
4 に答える
3102 参照

java - レガシ データベースを処理する場合、欠落している行でハイバネート チョークが発生する

レガシー データベース (レガシー PHP クライアントがまだある) に hibernate を実装しようとしていますが、元のアプリを書いた人が何をしているのかわからなかったため、いくつかの問題が発生しています。

データベースはどの列も NULL 可能にならないように設定されているため、レコードがない場合、外部キーはデフォルトで 0 になります。さらに、テーブルに適切な外部キーがないため、無効な ID を持つものがいくつかあります。スキーマを変更したり、適切な列を null にするオプションがありません。

これは、休止状態から得られるエラーです:

私が望むのは、行が無効であるか存在しない場合にフィールドが null になる、この泥に対処するための優雅な方法ですが、ドキュメントでこれを処理する方法を見つけることができません。

任意のヒント?

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

ruby-on-rails - Rails 3: DataObjects::SQLError -- これらが *warnings* でエラーを生成しないようにするにはどうすればよいですか?

(DataMapper を介して) 従来のデータベース スキーマのテーブルにいくつかのフィールドを挿入すると、次のようになります。

実際にはそのフィールドの値を指定しませんでしたが、基礎となる DB スキーマ (MySQL) にも値が設定されていません。これは実際に問題を引き起こすわけではなく、MySQL が挿入を実行することを意味しますが、完了後に「警告: 1」が表示されます。ただし、この警告が原因で Rails が停止し、挿入がロールバックされます。私はこのフィールドを修正できることを知っていますが、それに似たものが何千もあるので、警告ではなく実際の SQL エラーでのみ DataObjects を冷やしてエラーにする方法があるかどうかを調べていますか?

レール 3.0.7、ルビー 1.9.2、データマッパー 1.1.0

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

c# - 複合キーを使用したレガシー データベースでの Hibernate 1 対 1

NHibernate を使用してデータを読み取りたいレガシー データベースがあります。マップするテーブルは次のとおりです。

ユーザー

  • 主キー - ユーザー ID
  • PK - グループ ID
  • ロケーションソース
  • 等...

場所

  • 主キー - ユーザー ID
  • PK - グループ ID
  • PK - ソース
  • バツ

すべてのユーザーには、1 つ以上の場所があります。場所は、列によって識別されるさまざまなソースから入力できSourceます。Users テーブルの LocationSource列には、そのユーザーに最も関連性の高いロケーション ソースが保持されます。

現在作成中のアプリケーションでは、最後の場所のみが必要です。これは主にパフォーマンス上の理由から行われます。ユーザーをロードするたびに (外部結合を使用して) すべての場所をロードしたくありません (遅延ロードも問題外です)。

クラスは次のようになります。

データベーススキームをそれらのクラスにマップする方法がわかりません。これまで試したことはすべて失敗しました。

私はあなたの助けに感謝します。

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

entity-framework-4.1 - Entity Framework 4.1 - 不適切なスキーマのマッピング

そのため、多くのレガシー コードの依存関係があるため、今は触れることができない不適切な形式のスキーマがあります。

テーブルTestがあり、int型と宣言されたIsValid列があるとします。

poco ドメイン オブジェクトに IsValid の適切な意図をブール値として持たせたい。クエリがリポジトリに適用されたときに、クエリで正しく解決する必要があります。

次のように解決する必要があります。

EntityTypeConfiguration はこの方法でマップできますか、それともリポジトリ内の特殊なケースを探すためにカスタム式パーサーを作成する必要がありますか? または、別の方法がありますか (ドメイン オブジェクトで複数のプロパティを公開せずに)?

ありがとう!

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

database - 2 つの「主」キーを持つテーブルでの Hibernate

私はNHibernateを学習して、かなり独特のレガシーデータベースの上に重ねています。他のアプリケーションは同じライブ データベースを使用するため、それらに影響を与える変更を行うことはできません。

ハードウェア デバイスを表す 1 つのテーブルに、事実上の主キーとして使用される 2 つの列があるため、問題が発生しました。1 つは実際の主キーであり、自動生成された行 ID です。もう 1 つは、一意で null でないハードウェア シリアル番号です。

データベース内の他の多くのテーブルには、このテーブルとの外部キー関係があります。ただし、実際の主キー (整数の行 ID) を外部キーとして使用するものもあれば、代わりにデバイスのハードウェア ID を使用するものもあります。

実際には、ハードウェア ID と行 ID は、一度ペアになると、ペアのままであることに注意してください。

NHibernate でこれに対処するためのマッピングを作成できますか?それとも、より標準化されたスキーマを提供するためにいくつかのビューを作成し、INSTEAD OF トリガーを使用してそれらを更新可能にする必要がありますか?

使用中の DB は MSSQL 2000 です。これにより違いが生じる場合があります。

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

mysql - GrailsドメインクラスをTEXTフィールドを使用してレガシーデータベースにマッピングする際の問題

Grails1.3.7とMySQL5.1.56を使用して、レガシーデータベースのドメインクラスのセットを構築しようとしています。BuildConfig.groovyファイルでMySQLコネクタを「mysql:mysql-connector-java:5.1.13」として指定しています。

データベーススキーマには、TEXTタイプの「abstract」という名前のフィールドがあります。

私はクラスで対応するプロパティを次のように宣言しています(わかりやすくするために関連する部分のみを示しています)。

統合テストを実行すると、次のエラーが発生します。

宣言を次のように変更すると

同じエラーが発生します。タイプを「longtext」に設定すると、次のようになります。

一見関連していると思われるHibernateのバグについての議論を見ましたが、その回避策、またはTEXTフィールドを持つスキーマをモデル化する他の方法があるかどうか疑問に思っています。

ありがとう、

遺伝子

編集済み:関連するDataSource.groovyスニペットは次のとおりです。

EDITED(2):Dialect@Stefanの回答で提案されているように、Customクラスは次のとおりです。