我有一个用
定义的String列@Column(length = 4000)
该属性包含日志信息,可能长于定义的长度。在这种情况下,可以安全地截断该字段,而不会抛出错误消息。
我想在poo的DAO类中找出确定的列长度,以便在必要时可以截断字符串。我怎么能这样做?
此致
克里斯
答案 0 :(得分:6)
查看EJB answer这个问题;
要解释一下,如果你想要人员表中firstName列的长度,你可以使用这段代码。
person.getClass().getDeclaredField("firstName").getAnnotation(Column.class).length()
答案 1 :(得分:1)
嗯,最简单的方法是使用reflection和注释。不过,就性能而言,我不会便宜。
答案 2 :(得分:1)
实现这一目标的一种便宜而简单的方法是在实体类中使用长度常量。如果您认为列大小恰好是您实体中的常量
,我认为它应该是正确的方法实施例
public static final short FIELD_LENGTH = 255;
@Column(name="FIELD", length = FIELD_LENGTH)
private String field;
答案 3 :(得分:0)
使用反射将是一个明显的答案。
你在使用Hibernate吗?如果是这样,那么Hibernate Validator应该为您验证长度并提供合适的错误消息。