Я могу заставить встроенное Быть в спящем режиме не допускающий NULL-значения объект?

, Если Вы хотите:

c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63]
c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
c3 = [[13, 32], [7, 13, 28], [1,6]]

Тогда вот Ваше решение для Python 2:

c3 = [filter(lambda x: x in c1, sublist) for sublist in c2]

В Python 3 filter возвращает повторяемое вместо list, таким образом, необходимо перенестись filter вызовы с list():

c3 = [list(filter(lambda x: x in c1, sublist)) for sublist in c2]

Объяснение:

часть фильтра берет объект каждого подсписка и проверки, чтобы видеть, находится ли это в исходном c1 списка. Понимание списка выполняется для каждого подсписка в c2.

33
задан André Chalella 25 August 2009 в 18:41
поделиться

1 ответ

Встраиваемые компоненты (или составные элементы, как бы вы их ни называли) обычно содержат более одного свойства и, таким образом, сопоставляются более чем с одним столбцом. Следовательно, весь компонент, являющийся нулевым, можно рассматривать по-разному; Спецификация J2EE не требует того или иного способа.

Hibernate считает компонент равным NULL, если все его свойства равны NULL (и наоборот). Таким образом, вы можете объявить одно (любое) из свойств ненулевым (либо в @Embeddable , либо как часть @AttributeOverride в @Embedded ) для достижения что вы хотите.

В качестве альтернативы, если вы используете Hibernate Validator, вы можете аннотировать свое свойство с помощью @NotNull , хотя это приведет только к проверке на уровне приложения, а не на уровне базы данных.

36
ответ дан 27 November 2019 в 18:03
поделиться
Другие вопросы по тегам:

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