symfony2 entityにマップしない項目のvalidate

entityのバリデーションルールをform classで敢えて外す場合、以下の用に記述する。

    $builder
    ->add('name', 'text', array(
                'mapped'     => true,  //without entity 
    		'constraints' =>          //adding local validation
    			array( 
    				new NotBlank( array('message'=>'入力して下さい。')),
    				new Email( array('message'=>' 不正なメールアドレスです。')),
    			),
    	))

で仮にcontrollerから、

$form = $this->createForm(new myType(), $entity, 
    			array( 'validation_groups' => array('hoge') ) );

のようにビルドされるformの場合、

'constraints' =>          //adding local validation
    array( 
        new NotBlank( array( groups=>array('hoge'), 'message'=>'入力して下さい。')),
    ),

というように、validation groupを設定しないと機能しない。

ちなみにyamlで複数グループに制約設ける場合、

  properties:
    name:
      - NotBlank:
          groups: [hoge, foo]
          message: 入力して下さい。 

のようにして複数のグループに属することができる。
で、groupsを指定しない項目は、全グループに適用されるわけでなくグループ未指定のformに適用される。