Как создать уникальные ограничения в YML в Doctrine2?

Подумайте, что "bla" является волшебной фабрикой, например Strings.createString("bla") (псевдо). На заводе есть пул всех строк, созданных таким образом.

Если он вызывается, он проверяет, есть ли уже строка в пуле с этим значением. Если true, он возвращает этот строковый объект, поэтому строки, полученные таким образом, действительно являются одним и тем же объектом.

Если нет, он создает внутренний объект строки внутри, сохраняет его в пуле и затем возвращает его. Таким образом, когда в следующий раз запрашивается одно и то же строковое значение, он возвращает тот же экземпляр.

Вручное создание new String("") переопределяет это поведение путем обхода пула строковых литералов. Поэтому равенство всегда следует проверять с помощью equals(), который сравнивает последовательность символов вместо равенства ссылок на объекты.

19
задан gperriard 8 September 2011 в 11:50
поделиться