qq_23623723 2017-12-13 12:37 采纳率: 0%
浏览 1865
已结题

hibernate注解配置一对多并且一方为联合主键

hibernate注解配置单向一对多(配置在一的一方)并且一的一方为联合主键,这个该怎么配置,最好是写一个demo

  • 写回答

5条回答 默认 最新

  • 梦在哪里 2017-12-13 13:09
    关注

    如下是一个“酒店房间信息表”,以hotelRoomId和hotelId为联合主键。其中配置了“一对多”和“多对一”

    package cn.ssms.model;
    
    import java.util.HashSet;
    import java.util.Set;
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="hotelRoom")
    public class HotelRoom{
        private int hotelRoomId;            //客房编号
        private String hotelRoomName;       //房间名称
        private String hotelRoomImage;      //客房图片
    
        private Hotel hotel;                //属于哪个酒店
    
        private Set<HotelOrder> hotelOrderSet = new HashSet<HotelOrder>();              //相关的酒店订单的集合
        private Set<HotelRoomDate> hotelRoomDateSet = new HashSet<HotelRoomDate>();     //房间不同日期信息的集合
    
        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        @Column(name="hotelRoomId")
        public int getHotelRoomId() {
            return hotelRoomId;
        }
        public void setHotelRoomId(int hotelRoomId) {
            this.hotelRoomId = hotelRoomId;
        }
        @Column(name="hotelRoomImage")
        public String getHotelRoomImage() {
            return hotelRoomImage;
        }
        public void setHotelRoomImage(String hotelRoomImage) {
            this.hotelRoomImage = hotelRoomImage;
        }
        @Column(name="hotelRoomName")
        public String getHotelRoomName() {
            return hotelRoomName;
        }
        public void setHotelRoomName(String hotelRoomName) {
            this.hotelRoomName = hotelRoomName;
        }
    
        @ManyToOne(fetch=FetchType.LAZY,targetEntity=Hotel.class)
        @JoinColumn(name="hotelId")
        public Hotel getHotel() {
            return hotel;
        }
        public void setHotel(Hotel hotel) {
            this.hotel = hotel;
        }
        @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="hotelRoom")
        public Set<HotelOrder> getHotelOrderSet() {
            return hotelOrderSet;
        }
        public void setHotelOrderSet(Set<HotelOrder> hotelOrderSet) {
            this.hotelOrderSet = hotelOrderSet;
        }
        @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="hotelRoom")
        public Set<HotelRoomDate> getHotelRoomDateSet() {
            return hotelRoomDateSet;
        }
        public void setHotelRoomDateSet(Set<HotelRoomDate> hotelRoomDateSet) {
            this.hotelRoomDateSet = hotelRoomDateSet;
        }
    }
    

    有疑问请回复。欢迎采纳,谢谢!

    评论

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题