Будьте в спящем режиме: @UniqueConstraint с @ManyToOne полем?

Использование следующего кода:

@Entity 
@Table(uniqueConstraints=[@UniqueConstraint(columnNames=["account","name"])])
class Friend {
  @Id @GeneratedValue(strategy=GenerationType.AUTO)
  public Long id
  @ManyToOne
  public Account account
  public String href
  public String name
}

Я получаю следующую ошибку:

org.hibernate.AnnotationException: Unable to create unique key constraint (account, name) on table Friend: account not found

Кажется, что это имеет отношение к @ManyToOne ограничению, которое я воображаю, на самом деле создает отдельный UniqueConstraint???

В любом случае, если я вынимаю это, нет никакой жалобы на UniqueConstraint, но существует другая ошибка, которая заставляет меня полагать, что это должно быть оставлено внутри.

org.hibernate.MappingException: Could not determine type for: com.mksoft.fbautomate.domain.Account, at table: Friend, for columns: [org.hibernate.mapping.Column(account)]

Какие-либо подсказки, как я могу создать такое желаемое ограничение (т.е. что каждая комбинация учетной записи и имени происходит только однажды???)

Спасибо!

Misha

8
задан Миша Кошелев 18 June 2010 в 04:29
поделиться