2013-02-01 59 views
0

當我使用@OneToMany/@ManyToOne Hibernate假定列名是'task_id'。 是否有Annotiation來告訴Hibernate列名是例如'XXX'?使用@ManyToOne時的列名稱

表模式:

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

代碼:

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

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

感謝

回答

4

是的,這就是所謂的... @JoinColumn。作爲這樣的:

@JoinColumn(name = "xxx") 

你會使用它的關係(Task)的擁有方。

+0

我不認爲'@ Column'可與'@ ManyToOne' – ThanksForAllTheFish

+0

的問題通過略讀的危險。感謝您的支持......我也贊同您的回答。 – Perception

+0

很高興幫助;)並感謝upvote – ThanksForAllTheFish

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 ""; 
}