当我使用@OneToMany
/ @ManyToOne
时,Hibernate假定列名为'task_id'。
是否有一个Annotiation告诉Hibernate列名是例如'XXX'?
表架构:
Project Task
------- ----
id id
text text
project
代码:
class Project {
...
@OneToMany(mappedBy = "task")
private List<Task> tasks;
}
class Task {
...
@ManyToOne
private Project project;
}
由于
答案 0 :(得分:4)
是的,它被称为...... @JoinColumn
。使用原样:
@JoinColumn(name = "xxx")
您可以在关系的所有方面使用它(Task
)。
答案 1 :(得分:2)
@ManyToOne
@JoinColumn(name="xxx")
private Project project;
从Jpa 2.0规范,JoinColumn
接口
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface JoinColumn {
String name() default "";
String referencedColumnName() default "";
boolean unique() default false;
boolean nullable() default true;
boolean insertable() default true;
boolean updatable() default true;
String columnDefinition() default "";
String table() default "";
}