title: JPA metamodel and @Convert on a List<String> attribute
body: <p>I'm exploring the possibilities of using the JPA metamodel with the Criteria API.</p>
  
  <p>I have some entities that have attributes like this:</p>
  
  <pre><code>@Column( name = "defaultValue" )
  @Convert( converter = StringListToStringConverter.class )
  private List&lt;String&gt; defaultValue;
  </code></pre>
  
  <p>The DB column is a VARCHAR that holds a comma-separated list of strings (it's a legacy table). The converter nicely allows to use a real collection type when working with this entity attribute. But I'm confused by the metamodel that EclipseLink creates. The attribute is represented like this:</p>
  
  <pre><code> public static volatile SingularAttribute&lt;MyEntity, List&gt; defaultValue;
  </code></pre>
  
  <ol>
  <li><p>The raw type warning this declaration triggers is a little ugly. Is this enforced by the specification? Is there anything that would prevent the declaration to be this instead: </p>
  
  <pre><code>public static volatile SingularAttribute&lt;MyEntity, List&lt;String&gt;&gt; defaultValue;
  </code></pre></li>
  <li><p>I wonder if this declaration can lead to problems when I construct Criteria queries based on this metamodel. For example, would it be possible to construct a filter that checks if some specific value is contained in the list, something like</p>
  
  <pre><code>[...] where( literal( "element" ).in( entity.get( defaultValue ) ) )
  </code></pre>
  
  <p>(maybe this makes no sense at all - I've really just started with the Criteria API basics)</p></li>
  <li><p>Am I right to assume that a <code>ListAttribute</code> was not selected as the type for the metamodel here because the <code>CollectionAttribute</code>s in general are only used for expressing relationships with other entities/element collections?</p></li>
  </ol>