title: Mapping Set<enum> using @ElementCollection
body: <p>I have the following enum:</p>
  
  <pre><code>package ir.raysis.tcs.rule.days;
  
  public enum Days {
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
      THURSDAY, FRIDAY, SATURDAY;
  }
  </code></pre>
  
  <p>I tried to map it as a <code>Set&lt;Days&gt;</code> days as follows:</p>
  
  <pre><code>@ElementCollection(targetClass = Days.class) 
  @JoinTable(name = "days",joinColumns = @JoinColumn(name = "rule_id")) 
  @Column(name ="daysOfWeek", nullable = false) @Enumerated(EnumType.STRING) 
  private Set&lt;Days&gt; days = new HashSet&lt;&gt;();
  </code></pre>
  
  <p>However, it throws the following exception:</p>
  
  <pre><code>Initial SessionFactory creation failed.org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: rule, for columns: [org.hibernate.mapping.Column(days)]
  Apr 14, 2013 4:15:17 PM org.apache.catalina.core.StandardWrapperValve invoke
  SEVERE: Servlet.service() for servlet [jsp] in context with path [/ptcs] threw exception [javax.servlet.ServletException: java.lang.ExceptionInInitializerError] with root cause
  org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: rule, for columns: [org.hibernate.mapping.Column(days)]
      at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:306)
      at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:290)
      at org.hibernate.mapping.Property.isValid(Property.java:217)
      at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:464)
      at org.hibernate.mapping.RootClass.validate(RootClass.java:235)
      at org.hibernate.cfg.Configuration.validate(Configuration.java:1362)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1865)
      at ir.raysis.tcs.db.HibernateUtil.&lt;clinit&gt;(HibernateUtil.java:18)
      at ir.raysis.tcs.db.SaveUpadteDelete.save(SaveUpadteDelete.java:33)
      at ir.raysis.tcs.db.dBAllFunc.save(dBAllFunc.java:35)
      at ir.raysis.tcs.db.AbsDBObject.save(AbsDBObject.java:45)
      at ir.raysis.tcs.action.CreateMemberAction.execute(CreateMemberAction.java:31)
      at org.apache.jsp.action.createMember_jsp._jspService(createMember_jsp.java:79)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
      at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1770)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>How do I properly map it?</p>