FreelanceBot
52 строки · 1.1 Кб
1package telegramBot.entity;
2
3import jakarta.persistence.GeneratedValue;
4import jakarta.persistence.GenerationType;
5import jakarta.persistence.Id;
6import jakarta.persistence.MappedSuperclass;
7import org.apache.http.util.Asserts;
8import org.springframework.data.domain.Persistable;
9
10import java.util.Objects;
11
12@MappedSuperclass
13public abstract class BaseEntity implements Persistable<Long> {
14
15@Id
16@GeneratedValue(strategy = GenerationType.IDENTITY)
17protected Long id;
18
19public BaseEntity(){}
20
21@Override
22public boolean isNew() {
23return id == null;
24}
25
26@Override
27public Long getId() {
28return id;
29}
30
31public long id() {
32Asserts.notNull(id, "entity must have id");
33return this.id;
34}
35
36public void setId(Long id){
37this.id = id;
38}
39
40@Override
41public int hashCode() {
42return id == null ? 0 : id.intValue();
43}
44
45@Override
46public boolean equals(Object obj) {
47if(this == obj) return true;
48if(!(obj instanceof BaseEntity)) return false;
49BaseEntity entity = (BaseEntity) obj;
50return Objects.equals(this.id, entity.id);
51}
52}
53