2012-02-18 41 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

你不能定义对象的地址栏将被存储在另一个表(它有自己的标识,没有它在你的帐户类),但你可以定义另一个类的地址,让它有自己的映射和表,然后你的帐户类将与地址类有多对一的关系。这种方法也可以有优势。如果你想添加另一个字段添加到您的地址表中?并且如果其他字段不可能添加到您的地址表中,您为什么要将其存储在单独的表中?