@OrderColumn注释中的名称

时间:2017-09-15 07:37:58

标签: java spring hibernate jpa spring-data-jpa

我是初次使用Java和Java开发的新手。 我阅读了Hibernate / JPA 2.0文档,我知道在注释中 @OrderColumn有一个参数name@OrderColumn(name = "name_of_the_column_that_we_would_like_to_order")我们的收藏。

但是,我已经看到了其他一些名字 - 例如 pos nbr 。我猜这些建议应该按照表格中的位置或数字(nbr)或ID或其他东西来排序,遗憾的是我无法找到确切的答案,只有一些没有数据库示例的例子。

编辑:此外,如果还有其他类似于此 pos nbr 的示例,那么分享它会很不错。我猜是 nbr pos 是一些保留的词,不知何故jpa知道它应该如何接收和订购数据。

EDIT2

@Entity

@Table(姓名="问题") 公共课问题{

/**
 * 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。

1 个答案:

答案 0 :(得分:0)

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

将在连接表中创建一个名为MY_ORDER_COLUMN的排序列(如果通过连接表对List字段进行建模),或者在元素表中创建一个名为@OrderColumn的排序列。

该名称没有秘密值,只是what you want to call the columnCondition.notifyUnlocked()将包含元素0,1,2,......等位置的整数值