All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.minlia.rocket.data.entity.WithIdEntity Maven / Gradle / Ivy

There is a newer version: 2.0.4.1.RELEASE
Show newest version
package com.minlia.rocket.data.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;

@JsonInclude(JsonInclude.Include.NON_NULL)
//@JsonAutoDetect(
//    fieldVisibility = JsonAutoDetect.Visibility.ANY,
//    getterVisibility = JsonAutoDetect.Visibility.NONE,
//    setterVisibility = JsonAutoDetect.Visibility.NONE,
//    isGetterVisibility = JsonAutoDetect.Visibility.NONE,
//    creatorVisibility = JsonAutoDetect.Visibility.NONE)
@JsonIgnoreProperties(ignoreUnknown = true)
@MappedSuperclass
public abstract class WithIdEntity implements Serializable {

  private static final long serialVersionUID = 1L;

  public abstract ID getId();

//  public String toString() {
//    return ToStringBuilder.reflectionToString(getId());
//  }

  @Override
  @Transient
  @org.springframework.data.annotation.Transient
  @JSONField(serialize = false)
  public int hashCode() {
    return 17 + (isEmpty() ? 0 : getId().hashCode() * 31);
  }


  /**
   * 判断是否为空
   *
   * @return 是否为空
   */
  @Transient
  @org.springframework.data.annotation.Transient
  @JSONField(serialize = false)
  public boolean isEmpty() {
    return (null == getId());
  }


  /**
   * 判断是否相等
   *
   * @param obj 对象
   * @return 是否相等
   */
  @Override
  @Transient
  @org.springframework.data.annotation.Transient
  @JSONField(serialize = false)
  public boolean equals(Object obj) {
    if (obj == this) {
      return true;
    }
    if (isEmpty() || obj == null || !getClass().isAssignableFrom(obj.getClass())) {
      return false;
    }
    AbstractEntity entity = (AbstractEntity) obj;
    if (entity.isEmpty()) {
      return false;
    }
    return getId().equals(entity.getId());
  }


  @Override
  public String toString() {
    return this.getClass().getSimpleName() + "(id=" + this.getId() + ")";
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy