views:

90

answers:

1

Hi, This is my model.

class User{

   @CollectionOfElements 
    @JoinTable(name = "user_type", joinColumns = @JoinColumn(name = "user_id"))
    @Column(name = "type", nullable = false)
  private List<String> types = new ArrayList<String>();

}

You can imagin there would be a table called "user_type", which has two columns, one is "user_id", the other is "type".

And when I use hbm2ddl to generate the ddls, I can have this table, along with the foreign key constraint on "user_id". However, there is no index of this for this column. And I need this index. How can I let hibernate to generate this index for me?

Thank you!

+1  A: 

Try an @Index annotation.

@Index(name="user_type_index")

There is also an @IndexColumn annotation used with join tables, but it doesn't seem to actually create an index, but controls which field defines order in list semantics.

The @Index column in this context does seem to create an index on the join table.

Don Roby
Not working. Have you tried it?
Kent Chen
Yes. It worked for me. Could be database-dependent I suppose.
Don Roby
OK. Thank you anyway.
Kent Chen