ここでかなり具体的な質問ですが、1日私を悩ませています.PostgreSQL
8.3でHibernate Core、Annotations、Validatorを使用しています。
次のクラスをセットアップしています。
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Entry {
@EmbeddedId
protected EntryPK entryPK;
@ManyToMany
private Set<Comment> comments = new HashSet<Comment>();
...
@Embeddable
public class EntryPK implements Serializable {
@ManyToOne(cascade = CascadeType.ALL)
private Database database;
@Length(max = 50)
@NotEmpty
private String pdbid;
...
PostgreSQL データベース (@Embeddable ではなく @Entity 内の他のフィールドで機能している) の長さ制約に変換された長さ制約を確認したいのですが、機能したくないようです.
代わりに @IdClass を使用しても@EmbeddedId を削除し、@Entity の一致するフィールドに長さ制約を適用しても、この問題は解決されませんでした。データベース フィールドはまだ varchar 255 です (私のニーズには約 250 が大きすぎます)。
このレベルの詳細を気にするべきではないと言う人もいるかもしれませんが、私の OCD 側はそれを手放すことを拒否しています.. ;) EmbeddedId 内で Hibernate Validator Annotations を使用し、hbm2ddl に制約をデータベースに適用させることは不可能ですか?田畑?