2012-02-18 7 views
0

JavaClassのString属性を別のテーブルのカラムにバインドすることは可能です。別のテーブルのカラムへのString属性のバインド

例であればアドレス別々のテーブル内の文字列の正しい注釈だろう何

@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

あなたは別のテーブルに格納されるように、オブジェクトのアドレスフィールドを定義することはできません(それはあなたがそれを持っていない独自のIDを持っていますあなたのアカウントクラス)が、アドレスの別のクラスを定義し、独自のマッピングとテーブルを持たせることができます。次に、アカウントクラスはアドレスクラスとの多対1の関係を持ちます。このアプローチにも利点があります。フィールドをあなたのアドレステーブルに追加しますか?あなたのアドレステーブルに他のフィールドを追加することができない場合、なぜそれを別のテーブルに保存したいのですか?

関連する問題