1

嗨,我是休眠新手,在映射标记界面时遇到问题。我有一个标记界面。

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

如何使用注释映射这些类。

4

1 回答 1

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

于 2011-05-18T18:54:06.780 回答