Hibernate

A category to group articles related to Spring and Hibernate.

In case you are dealing with large amounts of data, processed into a schema generated using Hibernate you might want to create some indexes to speed up selects.

This can be easily achieved using the @Index annotation.

Here is a short example creating an index based on only one column called system. Indexes can be created independently from primary keys, indicated by @Id.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
@Entity
@Table(name = "A_Table_Name", indexes = { @Index(columnList = "system", name = "inx_system") })
public class ATableName implements Serializable {
    private static final long serialVersionUID = 7175559932832558291L;
	@Column
	private String environment;
	@Column
	@Id
	private String system;
	@Column
	@Id
	private String id;
...

 If you want to create an index consisting of more than one column, you simply provide all needed columns in the columnList like shown in below example. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
@Entity
@Table(name = "A_Table_Name", indexes = { @Index(columnList = "system,id,environment", name = "inx_system_id_env") })
public class ATableName implements Serializable {
    private static final long serialVersionUID = 7175559932832558291L;
	@Column
	private String environment;
	@Column
	@Id
	private String system;
	@Column
	@Id
	private String id;
...

Enjoy.