在功能上,顺序无关紧要.

从阅读的角度来看当然很重要.

当你看一个实体领域时,你想直接了解一般事物.

例如,它在DB中的映射或使用的集合关系.

通常,这个问题很重要,因为您需要为同一个字段声明一定数量的注释(至少为您的示例中的4个).

一些好的想法:

>应在实体之间的代码中一致地指定它们

>使最常见的注释(@Column,@ ManyToOne等)比最具体的注释(例如验证注释)更明显

>组相关注释.例如,应该对与验证相关的注释进行分组,同样也应该对与另一个实体的关联相关的注释进行分组.

从一般到具体和验证在一起:

@Column(name = "pass")
@Transient
@Length(min = 5, message = "*Your password must have at least 5 characters")
@NotEmpty(message = "*Please provide your password")
private String password;
或者从具体到一般和验证:
@Length(min = 5, message = "*Your password must have at least 5 characters")
@NotEmpty(message = "*Please provide your password")
@Transient
@Column(name = "pass")
private String password;
作为凌乱的订单看起来更具可读性:
@Length(min = 5, message = "*Your password must have at least 5 characters")
@Column(name = "pass")
@Transient
@NotEmpty(message = "*Please provide your password")
private String password;