title: JPA Collection has unwanted unique constraint in mapping table
body: <p>When I auto generate my database with <code>hibernate.hbm2ddl.auto=create</code> an 'unwanted' unique constraint is being created in a mapping table.  I am running postgres 9.1, the create table statement becomes:</p>
  
  <pre><code>CREATE TABLE schemaname.scanalerts
  (
    scanid bigint NOT NULL,
    alerts_id bigint NOT NULL,
    CONSTRAINT fkd65bd7541b5b1a8e FOREIGN KEY (scanid)
        REFERENCES rfid.scan (id) MATCH SIMPLE
        ON UPDATE NO ACTION ON DELETE NO ACTION,
    CONSTRAINT fkd65bd754860b0886 FOREIGN KEY (alerts_id)
        REFERENCES rfid.alert (id) MATCH SIMPLE
        ON UPDATE NO ACTION ON DELETE NO ACTION,
    CONSTRAINT scanalerts_alerts_id_key UNIQUE (alerts_id ),
    CONSTRAINT scanalerts_scanid_alerts_id_key UNIQUE (scanid , alerts_id )
  )
  </code></pre>
  
  <p>The unwanted constraint is <code>CONSTRAINT scanalerts_alerts_id_key UNIQUE (alerts_id )</code>, basically I only want the unique constraint on scanid and alerts_id.</p>
  
  <p>I'm using JPA annotations to create the mapping, here is my code:</p>
  
  <pre><code>@ElementCollection(targetClass = Alert.class, fetch = FetchType.EAGER)
  @CollectionTable(name = "scanalerts", schema = RfidConstants.SCHEMA, 
      joinColumns = @JoinColumn(name = "scanid"), 
      uniqueConstraints = @UniqueConstraint(columnNames = { "scanid", "alerts_id" }))
  private List&lt;Alert&gt; alerts;
  </code></pre>
  
  <p>Is there any way to stop the creation of the alert_id unique constraint?</p>
  
  <p>Thanks</p>
  
  <p>@JBNizet Here is the Alert mapping annotations:  </p>
  
  <pre><code>@Entity
  @Table(name = "alert", schema = "schemaname", 
      uniqueConstraints = @UniqueConstraint(columnNames = {"message", "alertPriority"}) )
  public class Alert implements Serializable {
  
      @Id
      @Column(name="id")
      @SequenceGenerator(name = "alertSeq", sequenceName="ALERT_SEQ", allocationSize = 1)
      @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "alertSeq")
      private Long id;
  
      @Column(name="versionnum")
      @Version
      private Long version;
  
      @Column(name = "message", nullable = false)
      private String message;
  
      @Column(name = "alertpriority", nullable = false)
      @Enumerated(EnumType.STRING)
      private AlertPriority alertPriority;
  </code></pre>