zoukankan      html  css  js  c++  java
  • JPA实体关联关系,一对一以及转换器

      现有两张表

      room (rid,name,address,floor)

      room_detail (rid,roomid,type)

      需要创建房间实体,但是也要包含type属性

      

    @Data  //lambok生成get,set方法
    @Entity
    @EqualsAndHashCode(callSuper=false, onlyExplicitlyIncluded = true) //此注解会生成equals(Object other) 和 hashCode()方法
    @Table(name="room")
    @SecondaryTable(name="room_detail",pkJoinColumns=@PrimaryKeyJoinColumn(name="roomid"))//关联的表,填写关联字段
    public class RoomEntity implements Serializable{
        
        private static final long serialVersionUID = -7921327682701819877L;
    @Column(nullable
    =false,unique = true) private Long rid;
       private String name;
        private String address;
      
        /**房间类型**/
        @Column(table="room_detail")
        @Convert(converter=RoomTypeConverter.class)
        private RoomType type;
        
    
        /**楼层**/
        @Column(table="room_detail")
        private Integer floor;
        
    }

    @Converter 是JPA的转换器,枚举类型与数据库交互使用,比如房间类型 1代表客房,2代表办公室,数据库是1,2,展示需要客房,办公室,用转换器转

      自己实现接口AttributeConverter ,实现两个方法

    例如

    public class RoomTypeConverter implements AttributeConverter<RoomType, Integer> {
    
        @Override
        public Integer convertToDatabaseColumn(RoomType attribute) {
            // TODO Auto-generated method stub
            return attribute.getCode();
        }
    
        @Override
        public RoomType convertToEntityAttribute(Integer dbData) {
            // TODO Auto-generated method stub
            return RoomTypes.valueOf(dbData);
        }
    
    }

    RoomType是枚举类,就不贴代码了

  • 相关阅读:
    ArcGIS for window mobile 数据打开
    Linux学习拾遗
    ArcEngine 连接sql server sde
    Server Objects Extension(SOE)开发(三)
    Server Objects Extension(SOE)开发(二)
    C# 调用ArcGIS server admin api
    切片文件发布成切片服务
    Printing tools 自定义模板打印的实现
    ubuntu下安装matlab
    修改ubuntu中的gcc和g++版本
  • 原文地址:https://www.cnblogs.com/Cassie-wang/p/9843292.html
Copyright © 2011-2022 走看看