Java tutorial
/* * Copyright 2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.bremersee.common.domain.jpa.entity; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.domain.Persistable; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; import java.time.ZonedDateTime; import java.util.Date; /** * @author Christian Bremer * */ @MappedSuperclass @EntityListeners(AuditingEntityListener.class) @Data @NoArgsConstructor public abstract class AbstractBaseJpa implements Persistable<Long> { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", nullable = false) private Long id; @Column(name = "created_date") @CreatedDate private Date created; @Column(name = "created_by", length = 75) @CreatedBy private String createdBy; @Column(name = "modified_date") @LastModifiedDate private Date modified; @Column(name = "modified_by", length = 75) @LastModifiedBy private String modifiedBy; @Transient @Override public boolean isNew() { return getId() == null; } }