Hibernate UnUniqueify для столбца в таблице


Hibernate UnUniqueify столбца в таблице (решено)


Я хочу, чтобы набор полей был неуникальным сам по себе, но уникальным в сочетании с другим полем, я получил эту таблицу с два столбца (составные первичные ключи); 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, но оно не сработало.

6
задан Ben 22 May 2012 в 13:36
поделиться