这里有一个相当具体的问题,但它现在
让我烦恼了一天:我在PostgreSQL 8.3上使用Hibernate Core,Annotations&Validator.
我有以下类设置:
@Entity @Inheritance(strategy = InheritanceType.JOINED) public class Entry { @EmbeddedId protected EntryPK entryPK; @ManyToMany private Setcomments = new HashSet (); ... @Embeddable public class EntryPK implements Serializable { @ManyToOne(cascade = CascadeType.ALL) private Database database; @Length(max = 50) @NotEmpty private String pdbid; ...
我想看看长度约束在我的PostgreSQL数据库中转换为长度约束(它适用于@ Entity中的其他字段,而不是@ Embeddable's),但它似乎并不想工作..
甚至使用@IdClass代替@EmbeddedId并在@Entity中的匹配字段上应用Length约束并没有解决这个问题:数据库字段仍然是varchar 255(大约250太大了,不能满足我的需要).
有些人可能会说我不应该关心这个详细程度,但我的OCD方面拒绝放手......;)是不是可以在EmbeddedId中使用Hibernate Validator Annotations并让hbm2ddl将约束应用于数据库字段?