Отфильтруйте дочерний набор, возвращенный с Совокупным Корневым использованием Nhibernate

features в ServingInputReceiver передается непосредственно в вашу модельную функцию. То, что вы хотите, это receive_tensors или receive_tensor_alternatives, то есть второй и третий аргумент конструктора ServingInputReceiver.

Например, вы можете сделать это

serialized_tf_example = tf.placeholder(dtype=tf.string, shape=[default_batch_size], name='tf_example')

receiver_tensors = { 'examples': serialized_tf_example}

raw_features = tf.parse_example(serialized_tf_example, feature_spec)

fn_norm1 = lamba FEATURE1: normalize_input_data('FEATURE1', FEATURE1)
fn_norm2 = lamba FEATURE2: normalize_input_data('FEATURE2', FEATURE2)
features['FEATURE1'] = tf.map_fn(fn_norm1, raw_features['FEATURE1'], dtype=tf.float32)
features['FEATURE2'] = tf.map_fn(fn_norm2, raw_features['FEATURE2'], dtype=tf.float32)
return tf.estimator.export.ServingInputReceiver(
      features=features,
      receiver_tensors=receiver_tensors,
      receiver_tensors_alternatives={'SOME_KEY': raw_features})

Если вам никогда не нужно питать сеть прототипом Example, вы можете полностью его пропустить.

raw_features = {'FEATURE1': tf.placeholder(...), 'FEATURE2': tf.placeholder(...)}
features = preprepocess(raw_features)
return tf.estimator.export.ServingInputReceiver(features, {'SOME_OTHER_KEY': raw_features})
5
задан 29 October 2008 в 16:54
поделиться

4 ответа

Ну, можно выставить свойства, которые фильтрованы в карте, как так:

<bag name="shippedOrders" ... where="Status == 'Shipped'" >
   <key column="CustomerId" />
   <one-to-many class="Order" />
</bag>

'Где' атрибутом является произвольный SQL.

Теоретически у Вас могло быть два свойства Клиента, Заказов и ShippedOrders. Однако я должен сказать, что не сделал этого, и я хотел бы протестировать как дескрипторы NH, располагающиеся каскадом в этом случае. В любом случае необходимо будет заботиться, когда новые объекты добавляются/удаляются, что они добавляются/удаляются правильно к обоим наборам.

То, что Вы хотите сделать, это делает, интересно, является ли Порядок совокупным корнем. Это могло бы быть меньше проблемы, в конечном счете делающей его как это:

orderRepository.GetOrders(int customerId, OrderStatus[] statuses)
3
ответ дан 14 December 2019 в 13:51
поделиться

Вы могли посмотреть на него, другой путь - загружает все доставленные заказы для Клиента.

session.CreateCriteria( typeOf(Order) )
    .Add( Restrictions.Eq("Shipped", shippedStatus ) )
    .Add( Restrictions.Eq("Customer", requiredCustomer) )
    .List<Order>();
1
ответ дан 14 December 2019 в 13:51
поделиться
ICriteria crit = session.CreateCriteria (typeof(Customer));

crit.CreateAlias ("Orders", "o");
crit.Add (Expression.Eq ("o.Status", shippedStatus));
crit.Add (Expression.Eq ("Id", customerId));

return crit.UniqueResult <Customer>();

что-то вроде этого.

1
ответ дан 14 December 2019 в 13:51
поделиться

Вы также можете сделать это с помощью HQL, используя session.Filter (customer.Orders, "where this.Status == 'Shipped'");

1
ответ дан 14 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: