2012-02-18 85 views
0

是否可以將JavaClass的String屬性綁定到不同表的列。將Stringattribute綁定到單獨表的列

@Entity 
@Table(name = "ACCOUNTS") 
public class Account { 
    private Long id; 
    private String nickname; 
    private String address; 

    @Id 
    @Column(name = "A_ID") 
    @GeneratedValue 
    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    @Column(name="A_NICKNAME") 
    public String getNickname() { 
     return nickname; 
    } 

    public void setNickname(String nickname) { 
     this.nickname = nickname; 
    } 


    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 
} 

什麼是正確的標註,如果所在的地址在一個單獨的表中的字符串?

單獨的表

CREATE TABLE IF NOT EXISTS `Adresses` (
    `ad_id` BIGINT NOT NULL AUTO_INCREMENT , 
    `ad_address` VARCHAR(45) NOT NULL , 
    PRIMARY KEY (`da_id`)) 
ENGINE = InnoDB; 

感謝

回答

1

你不能定義對象的地址欄將被存儲在另一個表(它有自己的標識,沒有它在你的帳戶類),但你可以定義另一個類的地址,讓它有自己的映射和表,然後你的帳戶類將與地址類有多對一的關係。這種方法也可以有優勢。如果你想添加另一個字段添加到您的地址表中?並且如果其他字段不可能添加到您的地址表中,您爲什麼要將其存儲在單獨的表中?