开发者

Setting column length of a Long value with JPA annotations

I'm performing a little database optimisation at the moment and wo开发者_StackOverflow中文版uld like to set the column lengths in my table through JPA. So far I have no problem setting the String (varchar) lengths using JPA as follows:

@Column(unique=true, nullable=false, length=99) 
public String getEmail() {
    return email;
}

However, when I want to do the same for a column which is of type Long (bigint), it doesn't work. For example, if I write:

@Id
@Column(length=7)
@GeneratedValue(strategy = GenerationType.AUTO) 
public Long getId() {
    return id;
}

The column size is still set as the default of 20. Are we able to set these lengths in JPA or am I barking up the wrong tree?

Thanks, Gearoid.


precision, scale make more sense for a numeric type. Also depends whether the JDBC driver and RDBMS allows setting of those on the particular column type


Are you using Eclipse as your IDE? If so, I suggest you make use of the Dali plugin (already installed) and active the "JPA Details" view. This view will help guide you as to what attributes you need to plug into your annotations.

You could have scale=7 instead of length=7. However JPA is still going to tell the database to prepare to hold an int of scale 20.

Also make sure you have your database dialect properly set.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜