Я хочу, чтобы набор полей был неуникальным сам по себе, но уникальным в сочетании с другим полем, я получил эту таблицу с два столбца (составные первичные ключи); id (первичный ключ) и object_proxy_id (первичный ключ), это именно то, что мне нужно, но hibernate устанавливает уникальность object_proxy_id для себя, чтобы значение не могло дублироваться в таблице, и мне это нужно столбец для приема повторяющихся значений.Поскольку у каждого пользователя есть свой собственный объектный прокси, и эти прокси не обязательно должны быть уникальными.
Вот чего я хочу добиться:
|-------------------------------|
| tbl_object_proxy |
| ------------------------------|
| Id (pk)| object_proxy_id (pk) |
|-------------------------------|
| 1 | 150 -- |
| 1 | 149 |= must be able to be DUPLICATE which is not the case right now.
| 2 | 150 -- |
| 2 | 151 |
|-------------------------------|
Текущий код:
@Entity
@Table(name = "tbl_user_settings", uniqueConstraints = {@UniqueConstraint(columnNames={"user_id"})})
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Settings implements Serializable
{
@Id
@SequenceGenerator(name="someSequence", sequenceName="SEQ_SOMENAME", allocationSize =1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="someSequence")
@Column(name="id")
private int setting_id;
@OneToOne
private User user;
@ManyToOne
private SomeObject someobject;
@ElementCollection
@CollectionTable(name="tbl_collection_name", joinColumns=
@JoinColumn(name="id"), uniqueConstraints = {@UniqueConstraint(columnNames={"id", "object_proxy_id"})})
@Column(name="SomeObject")
private Set<SomeObject> objectProxy;
/*...constructors and methods...*/
}
Результат:
-- Table schema
|-------------------|
| tbl_user_settings |
|-------------------|
| id |PK <<Unique>>
| user_id |FK reference tbl_user <<Unique>>
| object_id |FK reference tbl_object
|-------------------|
|------------------|
| tbl_object_proxy |
|------------------|
| id |PK reference tbl_user_settings
| object_proxy_id |PK reference tbl_object <<Unique>> BUT I DON'T WANT THIS TO BE UNIQUE ON ITSELF !!!!
|------------------|
РЕДАКТИРОВАТЬ:
Два первичных ключа в tbl_object_proxy являются составными первичными ключами
.
Я пробовал решение Xeon, но оно не сработало.