Skip to content

Instantly share code, notes, and snippets.

package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.example.demo.model.Event;
@Repository
public interface EventRepository extends JpaRepository<Event, Long>{
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.example.demo.model.Employee;
@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long>{
@p1coderblog
p1coderblog / ModelListenerInjector.java
Created July 3, 2019 01:15
This class inject auto-wire the bean for listener.
package com.example.demo.model;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@Component
public class ModelListenerInjector {
@p1coderblog
p1coderblog / ModelListener.java
Created July 3, 2019 01:14
This is the listener class which persist the CRUD meta information into database.
package com.example.demo.model;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@p1coderblog
p1coderblog / Event.java
Created July 3, 2019 01:13
This is the meta information of CRUD event to be logged into database.
package com.example.demo.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
@p1coderblog
p1coderblog / Employee.java
Created July 3, 2019 01:12
This is Employee class which inherit from BaseModel.
package com.example.demo.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Employee extends BaseModel {
@Id
@p1coderblog
p1coderblog / BaseModel.java
Created July 3, 2019 01:11
This is the base class for all model which require the JPA logging for CRUD action.
package com.example.demo.model;
import java.util.Map;
import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;
@MappedSuperclass
@EntityListeners(ModelListener.class)
@p1coderblog
p1coderblog / AutowireUtil.java
Created July 3, 2019 01:10
AutowireUtil class is used to auto-wire spring-beans inside JPA listener
package com.example.demo.model;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public final class AutowireUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
private AutowireUtil() {
@p1coderblog
p1coderblog / EmployeeController.java
Created July 3, 2019 01:07
This is REST controller which is for testing JPA logging feature
package com.example.demo.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
@p1coderblog
p1coderblog / Resizable image inside contenteditable DIV
Created April 28, 2019 14:11
Resizable image inside contenteditable DIV
<!doctype html>
<html>
<body>
<style type="text/css">
#edt {
padding: 2px;
width: 100%;
height: 500px;
border: 1px solid black;