2017-09-15 252 views
0

我是Java中的Spring和Web開發的新手。 我讀了Hibernate/JPA 2.0文檔,並且我知道在註釋 @OrderColumn中有一個參數name@OrderColumn(name = "name_of_the_column_that_we_would_like_to_order")我們的收藏。@OrderColumn註釋中的名稱

但是,我已經看到一些其他的名字 - 例如, pos and nbr。我猜測這些建議應該按照表中的位置或數字(nbr)或ID或其他東西來排序,但不幸的是,我找不到確切的答案,只有一些沒有數據庫例子的例子。

編輯:另外,如果有類似於本POSNBR一些其他例子也將是不錯的共享。我猜pos是一些保留字,jpa知道如何接收和訂購數據。

EDIT2

@Entity 

@Table(name = 「問題」) 公共類問題{上這部分

/** 
* serialVersionUID 
*/ 
private static final long serialVersionUID = -7677167590736866885L; 

/** 
* Content of the question 
*/ 
@Column(nullable = false, length = 255) 
@Pattern(regexp = "^(?=\\s*\\S).*$") 
private String content; 

/** 
* Possible answers to the question 
*/ 
@ElementCollection(fetch = FetchType.EAGER) 
@CollectionTable(name = "question_answer", joinColumns = @JoinColumn(name = 
"question_id")) 
@OrderColumn(name = "nbr") 
@Valid 
private List<Answer> answers; 

/** 
* Category of the question 
*/ 
@ManyToOne(optional = true) 
@JoinColumn(name = "category_id", nullable = true) 
private Category category; 

關注:

/** 
* Possible answers to the question 
*/ 
@ElementCollection(fetch = FetchType.EAGER) 
@CollectionTable(name = "question_answer", joinColumns = @JoinColumn(name = 
"question_id")) 
@OrderColumn(name = "nbr") 
@Valid 
private List<Answer> answers; 

然而,在基地沒有列名爲nbr

這裏的問題表

Question table columns

的圖片下面是回答表的圖片

Answer's table columns

category_id是外鍵,在這個問題屬於類的ID。

+0

和「答案」是什麼?一個實體?任何老班?訂單欄由您的JPA供應商生成。 「question_answer」表在哪裏?包含列表的那個!!! – DN1

+0

答案顯然是一個實體。 沒有question_answer表,因爲它不是'ManyToMany'關係。 –

+0

如果什麼是一個ENTITY,那麼你不能使用'@ ElementCollection'(顯然),你使用'@ OneToMany'或'@ ManyToMany'(和@ @TableTable'而不是'@ CollectionTable')。是的,因爲您在元數據中指定了它,所以還有那張表! – DN1

回答

0
@OrderColumn(name="MY_ORDER_COLUMN") 
List myList; 

會無論是在連接表創建名MY_ORDER_COLUMN的排序列(如果通過連接表造型的表字段),或元素的表。

有沒有這個名字的祕密價值,它只是what you want to call the column@OrderColumn將包含元素0,1,2,...等的位置的整數值。

相關問題