Enclose the table name in square braces:
@Entity
@Table(name = "[user]")
public class User {
That way Hibernate will escape it when it creates the table. If you put all your field and table names in square braces as a rule, you never have to consider the underlying DBMS when setting up your mappings.
<rant>It always bothered me that you had to do this. One of the major goals of Hibernate is to isolate your code from the underlying database -- I never understood why the dialect implementations don't properly handle escaping reserved keywords.</rant>
See also: Using database reserved keywords in Hibernate
Users, since it is going to store a set of users, and in addition this will not conflict with a reserved word? I understand that in the entity model the thing is a user, but you need to draw a line between the app and the schema somewhere.