0

当我使用@OneToMany/ @ManyToOneHibernate 时,假定列名是“task_id”。是否有一个注释来告诉 Hibernate 列名是例如“xxx”?

表架构:

Project      Task
-------      ----
id           id
text         text
             project

代码:

class Project {
    ...
    @OneToMany(mappedBy = "task")
    private List<Task> tasks;
}

class Task {
    ...
    @ManyToOne
    private Project project;
}

谢谢

4

2 回答 2

4

是的,它叫@JoinColumn…… 像这样使用:

@JoinColumn(name = "xxx")

您将在关系的拥有方使用它 ( Task)。

于 2013-02-01T13:56:31.767 回答
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 "";
}
于 2013-02-01T14:07:48.167 回答