2011-05-18 60 views
0

嗨,我是新來的休眠,並面臨着標記接口映射問題。 我有一個標記界面。休眠標記接口映射使用jpa

public interface Item{} 

再就是它實現這個接口兩類:

public class Hotel implements Item{ 
     private int id; 
     private String name; 
     private String location; 
     ....... 
    } 
    public class Restaurant implements Item{ 
     private int id; 
     private String name; 
     private String cuisine; 
     ....... 
    } 

存在使用這兩類其他類:

public class ItineraryItem { 
      private int id; 
      private Item item; 
    } 

我該如何映射使用註解這些類。

回答

0

代碼:

@Entity 
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) 
public abstract class Item { 
    @Id 
    private int id; 
} 

@Entity 
public class Hotel extends Item { 
    @Column 
    private String name; 
    @Column 
    private String location; 
} 

@Entity 
public class Restaurant extends Item { 
    @Column 
    private String name; 
    @Column 
    private String cuisine; 
} 

@Entity 
public class ItineraryItem { 
     @Id 
     private int id; 
     @JoinColumn 
     private Item item; 
} 

InheritanceType.TABLE_PER_CLASS會導致HotelRestaurant有自己單獨的表。

你可以在這裏找到更多的信息:http://en.wikibooks.org/wiki/Java_Persistence/Inheritance

+0

'Item'不再與這個標記接口。如果沒有方法,那麼確實不需要映射「Item」。 – 2011-05-18 18:56:56