問題タブ [one-to-one]
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.
symfony1 - Doctrine 1.2: 1 対多の関係の両側に制約が割り当てられないようにするにはどうすればよいですか?
Doctrine が 1 対 1 の関係の両側に制約を割り当てないようにする方法はありますか? 定義を一方から他方に移動し、所有側を使用しようとしましたが、それでも両方のテーブルに制約が課されます。親テーブルにのみ制約を持たせたい場合-つまり。親に子が関連付けられていない可能性があります。
たとえば、基本的に次の SQL スキーマが必要です。
しかし、私はこのようなものを得ています:
制約を手動で削除するか、アクセサーを変更してコレクション内の単一のエンティティを返す/設定することができますが (1 対多を使用)、これを処理する方法が組み込まれているようです。
また、Symfony 1.4.4 (pear installtion ATM) を使用しています - sfDoctrinePlugin の問題であり、必ずしも Doctrine 自体ではない場合に備えて。
sql - SQL/MySQL で、1 対 1 の関係を同じテーブルに配置しない理由はありますか?
通常、1 対 1 の関係は同じテーブルに格納できます。それらを同じテーブルに保存しない理由はありますか?
java - Hibernateでのオプションの1対1マッピング
Hibernate hbmファイルにオプションの1対1マッピングを作成するにはどうすればよいですか?たとえば、Userテーブルとlast_visited_pageテーブルがあるとします。ユーザーはlast_visitedページを持っている場合と持っていない場合があります。これがhbmファイルの現在の1対1のマッピングです。
ユーザークラス:
LastVisitedPageクラス:
上記の例では、最後にアクセスしたページを持たないユーザーを作成することはできません。新しく作成されたユーザーは、まだどのページにもアクセスしていません。hbmマッピングを変更してuserPrefsマッピングをオプションにするにはどうすればよいですか?
nhibernate - Nhibernate 子オブジェクト挿入エラーによる 1 対 1 マッピングの問題
次の Nhibernate の問題で、一日中机に頭をぶつけています。
各銀行口座には、関連付けられたレートのセットが 1 つ (1 つだけ) あります。銀行口座テーブルの主キーである BankAccountID も外部キーであり、AccountRate テーブルの主キーです。
BankAccount の次の HBM マッピングがあります。
AccountRate の場合は次のとおりです。
データベースから既存の BankAccount オブジェクトを問題なく読み取ることができます。ただし、新しい BankAccount が作成されると、insert ステートメントは失敗します。
問題は、子オブジェクトである AccountRate が最初に作成されることです。Parent から識別子をまだ取得していないため、挿入は失敗します。
BankAccount の AccountRate プロパティがコレクションである場合、次を使用できると言うのは正しいと思いますか?
親を最初に強制的に挿入するため。
誰でもこれで私を助けることができますか?私は本当にコレクションを使用したくありません.これらのテーブル間には一方向の1対1の関係しかありません.
ありがとう
ポール
nhibernate - 1対多から1対1へのNHibernate
作成中のソフトウェアのセキュリティ システムを作成していますが、NHibernate で次のことができる方法を知りたいです (可能な場合)。
ユーザー アカウント クラス:
特典クラス:
これらの特権オブジェクトを多数 (取引されたエンティティごとに 1 つ) 持つことになるので、データベースには次のテーブルがあります。
UserAccounts ( UserID , Username)
Privileges ( UserID, PrivilegeType , Read,Write,Modify,Delete)
InvoicePrivielge プロパティをユーザー アカウントから (UserID, 'Invoice') 権限にマップするにはどうすればよいですか。
多対一を使用してこれを行うこともできますが、特権のコレクションは必要ありません。むしろ、それをそのプロパティにマップしたいと思います。
database - グレイルの1対1の関係を、カバーの下にある1つのテーブルにどのようにマッピングしますか?
UserPreferencesドメインクラスを持つUserAccountドメインクラスがあるとしましょう。これは、組織化のためにフィールドを分離するために行います。grails / gormに、これらのドメインクラスを内部のuser_accountテーブルだけにマップすることを本当に望んでいることを伝える方法はありますか?
ありがとう!
nhibernate - Hibernate の複雑な 1 対 1 マッピング
エンティティの一般的なバージョン管理されていないデータを含むテーブル A があります。特定のエンティティ タイプのバージョン管理されたデータを含むテーブル B、C、D もあります。これらのテーブルはすべて、テーブル A を参照しています。
タスクは、テーブル A を参照するテーブル B に格納されているエンティティのタイプのプロパティのマッピングを追加し、テーブル A の識別子に基づいてテーブル B からエンティティを取得する方法のルールを指定することです (たとえば、 、エンティティの最新バージョンを取得します)。
それはNHibernateで可能ですか?
.net - LINQ-to-SQL での整数キーを使用した Null 許容の 1 対 1 の関係
2 つのオブジェクト (Foo
とBar
) があり、それらの間に 1 対 0 または 1 の関係があります。したがって、Foo には、Bar.ID への null 許容外部キー参照と、"1" 側を強制する ( nullbusted ) 一意のインデックスがあります。Bar.ID は int であるため、Foo.BarID は null 許容の int です。
この問題は、.NET 型から SQL データ型への LINQ-to-SQL DBML マッピングで発生します。int
は .NET では null 許容型ではないため、Nullable<int>
. ただし、これは と同じ型ではないint
ため、これらの間に OneToOne アソシエーションを作成しようとすると、Visual Studio から次のエラー メッセージが表示されます。
関連付け "Bar_Foo" を作成できません。プロパティに一致するタイプがありません: "ID"、"BarID"。
これを回避する方法はありますか?
java - @OneToOneの注釈の問題(私は思う...)
hibernateとJPAの新機能であり、注釈に問題があります。
私の目標は、dbにこのテーブルを作成することです(personal-detailsを含むPERSON_TABLE)
まず第一に、私は私の国のすべての自治体を含むdbにMUNICIPALITYテーブルを持っています。このテーブルをこのエンティティにマッピングしました:
次に、単純なアドレスを実現するフィールドを含むEMBEDDABLEクラスのアドレスを作成します。
最後に、このクラスをPersonENTITYに埋め込みました
新しいPersonレコードを保存する必要がある場合は、すべて正常に機能します。実際、hibernateは必要に応じてPERSON_TABLEを作成しますが、Personレコードを取得しようとすると、例外が発生します。HQLは単に「Personから」です。例外は次のとおりです(Entitiesは上記のすべてのクラスを含むパッケージです)。
@OneToOneアノテーションは問題ですか?
私のhibernate.cfg.xmlは次のとおりです。
ありがとう。
nhibernate - この単方向 NHibernate の 1 対 1 マッピングを行う方法は?
これは、NHibernate での一方向の 1 対 1 マッピングの問題です。
Student.cs
StudentDetail.cs
これらのクラス (hbm マッピング ファイルはどのように見えるか) を次のような 1 対 1 の関係にマップするにはどうすればよいですか?
クラスとテーブルをよく見てください。
<many-to-one>
または のどこにタグを付けることができますStudent.hbm.xml
かStudentDetail.hbm.xml
? に入れたら、別のテーブルにあるのでStudent.hbm.xml
、どうすれば列をマッピングできますか?StudentDetail.StudentID
したがって、このマッピング:
次の例外が生成されます。
一方、<many-to-one>
には配置できませんStudentDetail.hbm.xml
。タイプStudentDetail.cs
のプロパティは含まれていませんStudent
。
タグは使え<one-to-one>
ますか?はいの場合、またはのどこに配置すればよいですStudent.cs
かStudentDetail.cs
?また、どのように構成すればよいですか?