Ограничение на уникальность данных, не созданное в JPA

Я создал следующий компонент сущности и указал два столбца, как являющиеся уникальным. Теперь моя проблема состоит в том, что таблица составлена без ограничения на уникальность данных и никаких ошибок в журнале. У кого-либо есть идея?

@Entity
@Table(name = "cm_blockList", uniqueConstraints = @UniqueConstraint(columnNames = {"terminal", "blockType"}))
public class BlockList {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(name="terminal")
    private Terminal terminal;
    @Enumerated(EnumType.STRING)
    private BlockType blockType;
    private String regEx;
}
7
задан homaxto 31 May 2010 в 14:19
поделиться

2 ответа

Хорошо, я нашел другой способ сделать дизайн. Скорее потому, что дизайн эволюционировал, чем работа вокруг него.
Однако я слышал от коллеги, у которого была такая же проблема, что уникальные ограничения создаются только спящим режимом (мы запускаем JBoss 4.3), когда создается вся база данных. Это не сработает, если вы создадите новую таблицу в существующей базе данных.
Поэтому в persistence.xml необходимо установить hibernate.hbm2ddl.auto на create-drop , чтобы он работал. Однако я не могу это подтвердить.

6
ответ дан 7 December 2019 в 05:18
поделиться

Больше предложений, чем реального ответа ...

  • вам следует уточнить, какого провайдера JPA (и версию) вы используете для таких вопросов.

  • Я заметил, что один из ваших столбцов является частью ассоциации ManyToOne , это может быть «особый» случай, который не обрабатывается вашим провайдером JPA. Под «плохо обработанным» я подразумеваю ошибку. Я бы проверил средство отслеживания проблем на предмет существующей проблемы (и, возможно, создал бы новую, ваш случай кажется совместимым с JPA).

0
ответ дан 7 December 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: