我是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或其他東西來排序,但不幸的是,我找不到確切的答案,只有一些沒有數據庫例子的例子。
編輯:另外,如果有類似於本POS和NBR一些其他例子也將是不錯的共享。我猜和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。
這裏的問題表
的圖片下面是回答表的圖片
category_id
是外鍵,在這個問題屬於類的ID。
和「答案」是什麼?一個實體?任何老班?訂單欄由您的JPA供應商生成。 「question_answer」表在哪裏?包含列表的那個!!! – DN1
答案顯然是一個實體。 沒有question_answer表,因爲它不是'ManyToMany'關係。 –
如果什麼是一個ENTITY,那麼你不能使用'@ ElementCollection'(顯然),你使用'@ OneToMany'或'@ ManyToMany'(和@ @TableTable'而不是'@ CollectionTable')。是的,因爲您在元數據中指定了它,所以還有那張表! – DN1