I have used the following id generation strategy for primary keys. 

```
    @Id
        @GeneratedValue(strategy = IDENTITY)
        @Column(name = "id", unique = true, nullable = false, insertable = false, updatable = false)
        private Integer id;

```

I would like to do the same for a non primary key column.
 [a] What would be the semantics of defining an automatic generation scheme for such a key
 [b] Is there a guarantee that there will not be a gap in numbers for the generated number.