基础操作工具修改
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
index ac36051..1a1d15d 100644
--- a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
@@ -1,5 +1,6 @@
package com.supwisdom.leaveschool.common.repository;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -13,6 +14,7 @@
import org.springframework.transaction.annotation.Transactional;
import com.supwisdom.leaveschool.common.model.PageModel;
+import com.supwisdom.leaveschool.common.util.ReflectFieldUtil;
@Transactional
@@ -86,16 +88,44 @@
@Transactional
public void save(Object entity){
+ entity = ReflectFieldUtil.setValue(entity, "addTime", new Date());// FIXME 缺少操作人
entityManager.persist(entity);
}
@Transactional
public void update(Object entity){
+ entity = ReflectFieldUtil.setValue(entity, "editTime", new Date()); // FIXME 缺少操作人
entityManager.merge(entity);
}
-
+ /**
+ * 逻辑删除
+ * @param entity
+ */
@Transactional
public void delete(Object entity){
+ entity = ReflectFieldUtil.setValue(entity, "deleted", true);
+ entity = ReflectFieldUtil.setValue(entity, "deleteTime", new Date());// FIXME 缺少操作人
+ //entityManager.remove(entity);
+ entityManager.merge(entity);
+ }
+ /**
+ * 根据id逻辑删除
+ * @param entityType
+ * @param id
+ */
+ @Transactional
+ public <T> void deleteById(Class<T> entityType,String id){
+ T entity = entityManager.find(entityType, id);
+ entity = ReflectFieldUtil.setValue(entity, "deleted", true);
+ entity = ReflectFieldUtil.setValue(entity, "deleteTime", new Date());// FIXME 缺少操作人
+ entityManager.merge(entity);
+ }
+ /**
+ * 物理删除
+ * @param entity
+ */
+ @Transactional
+ public void deletePhysics(Object entity){
entityManager.remove(entity);
}
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/util/ReflectFieldUtil.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/util/ReflectFieldUtil.java
index 56a676e..1b3be83 100644
--- a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/util/ReflectFieldUtil.java
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/util/ReflectFieldUtil.java
@@ -20,20 +20,26 @@
* @throws Exception
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
- public static <T> Object setValue(T entity,String fieldName,Object fieldVlue) throws Exception{
- if(fieldVlue!=null) {
- Field field = entity.getClass().getDeclaredField(fieldName);
- Class class1 = field.getType();//field.getDeclaringClass();
- Class class2 = fieldVlue.getClass();
- System.out.println(class1.isAssignableFrom(class2));
- //判断两个类型是否相等
- if(class1.isAssignableFrom(class2)) {
- //setAccessible这行代码把对象上的id字段设置为public访问属性.
- field.setAccessible(true);
- // 设置该T的属性
- field.set(entity, fieldVlue);
+ public static <T> T setValue(T entity,String fieldName,Object fieldVlue){
+ try {
+ if(fieldVlue!=null) {
+ Field field = entity.getClass().getDeclaredField(fieldName);
+ Class class1 = field.getType();//field.getDeclaringClass();
+ Class class2 = fieldVlue.getClass();
+ //判断两个类型是否相等
+ if(class1.isAssignableFrom(class2)) {
+ //setAccessible这行代码把对象上的id字段设置为public访问属性.
+ field.setAccessible(true);
+ // 设置该T的属性
+ field.set(entity, fieldVlue);
+ }
}
+ return entity;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
}
- return entity;
+
+
}
}
diff --git a/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/repository/Test.java b/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/repository/Test.java
index 5ece20c..1e506db 100644
--- a/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/repository/Test.java
+++ b/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/repository/Test.java
@@ -1,8 +1,12 @@
package com.supwisdom.leaveschool.leaving.repository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
import org.springframework.stereotype.Service;
@Service
public class Test {
+
+
private String id="00";
public String getId() {
diff --git a/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/Test1.java b/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/Test1.java
index 87a3774..5b2fd1e 100644
--- a/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/Test1.java
+++ b/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/Test1.java
@@ -16,6 +16,8 @@
private Integer age;
private Date thisTime;
+
+ private Boolean deleted;
public String getId() {
return id;
@@ -56,5 +58,13 @@
public void setThisTime(Date thisTime) {
this.thisTime = thisTime;
}
+
+ public Boolean getDeleted() {
+ return deleted;
+ }
+
+ public void setDeleted(Boolean deleted) {
+ this.deleted = deleted;
+ }
}
diff --git a/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/TestMain.java b/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/TestMain.java
index 0a16467..9a4e037 100644
--- a/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/TestMain.java
+++ b/leaveschool/leaving/src/main/java/com/supwisdom/leaveschool/leaving/test/TestMain.java
@@ -1,7 +1,6 @@
package com.supwisdom.leaveschool.leaving.test;
import java.lang.reflect.Field;
-import java.util.Date;
public class TestMain {
@@ -26,7 +25,7 @@
public static void main(String[] args) {
try {
- System.out.println(save(new Test1(),"thisTime",new Date()));
+ System.out.println(save(new Test1(),"deleted",true));
} catch (Exception e) {
System.out.println(1111);
e.printStackTrace();