формула свойства не возвращает результат - PullRequest
0 голосов
/ 31 января 2011

У меня есть таблица Submission, у которой есть сопоставление «многие к одному» с SubmissionType, у которого есть сопоставление «один ко многим» с таблицей SubmissionTypeYear.Несмотря на то, что это сопоставление один ко многим, всегда будет только один SubmissionTypeYear для SubmissionType.(Не спрашивайте меня, почему база данных была спроектирована таким образом. Я не был вовлечен, и мне просто нужно заставить ее работать.)

Следовательно, у представления будет SubmissionType будет 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, поэтому я также попытался использовать статическую строку, но, похоже, она не работает.

Что я делаю не так?Пожалуйста, помогите.

Спасибо

1 Ответ

0 голосов
/ 31 января 2011

ОК, я понял это.Проблема была с созданными новыми типами представления.Поскольку это был новый объект, который еще не сохранен в базе данных, он не смог подобрать рассчитанное поле.Это работало для всех существующих объектов.Исправлено:)

Надеюсь, это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...