2011-01-31 2 views
0

私はSubmissionTypeYearテーブルへの1対多数のマッピングを持つSubmissionTypeへの多対1のマッピングを持つテーブルSubmissionを持っています。これは1対多のマッピングでも、SubmissionTypeに対して常に1つのSubmissionTypeYearが存在します。 (データベースがこのように設計された理由を私に聞かないでください。私は関与しておらず、機能させるだけです)。プロパティ式は結果を返しません

したがって、サブミッションにはSubmissionTypeYearがあります。

私の問題は、私のSubmission.hbm.xmlでは、SubmissionTypeYearから列の値を取得する計算されたプロパティが必要です。しかし、私は何が間違っているのか分からず、テーブルに値があることを知ったときにゼロで戻ってきます。

これは私のコードです:

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Business.Domain" assembly="Business.Domain"> 
    <class name="Business.Domain.Submission, Business.Domain" table="dbo.Submission" lazy="true" optimistic-lock="version" > 
    <id name="Id" column="SubmissionId"> 
     <generator class="identity"/> 
    </id> 
    <discriminator column ="SubmissionTypeCode"></discriminator> 

    <many-to-one name="SubmissionTypeMember" insert="false" column="SubmissionTypeCode" class="RefSubmissionType" access ="field.camelcase-underscore" cascade ="none" /> 

    <property name="Year" formula="(SELECT TOP 1 SubmissionTypeYear.Year FROM SubmissionTypeYear WHERE SubmissionTypeYear.SubmissionTypeCode = SubmissionTypeCode)" access="field.camelcase-underscore"></property> 


</hibernate-mapping> 

私はそれが正しくSubmissionTypeCodeを拾っていなかったと思ったので、私は同様に静的な文字列でみましたが、動作していないようです。

私は間違っていますか?助けてください。

ありがとう、

答えて

0

OK、私はそれを理解しました。新しい提出タイプが作成されて問題が発生しました。新しいオブジェクトであり、データベースにまだ格納されていないため、計算されたフィールドを取得できませんでした。それは既存のすべてのオブジェクトのために働いていた。固定:)

これは他の誰かを助けることを望みます。

関連する問題