diff --git a/flyfish-approval/src/main/java/dev/flyfish/framework/approval/domain/record/ApproveRecord.java b/flyfish-approval/src/main/java/dev/flyfish/framework/approval/domain/record/ApproveRecord.java index 96907f9..599e4a1 100644 --- a/flyfish-approval/src/main/java/dev/flyfish/framework/approval/domain/record/ApproveRecord.java +++ b/flyfish-approval/src/main/java/dev/flyfish/framework/approval/domain/record/ApproveRecord.java @@ -1,20 +1,18 @@ package dev.flyfish.framework.approval.domain.record; +import dev.flyfish.framework.annotations.Entity; +import dev.flyfish.framework.annotations.Property; import dev.flyfish.framework.approval.enums.ApproveAction; import dev.flyfish.framework.domain.base.AuditDomain; import lombok.Getter; import lombok.Setter; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Column; -import org.springframework.data.relational.core.mapping.Table; /** * 审批记录 * * @author wangyu */ -@Document(collection = "approve-records") -@Table("t_approve_records") +@Entity(table = "t_approve_records", collection = "approve-records") @Getter @Setter public class ApproveRecord extends AuditDomain { @@ -26,11 +24,11 @@ public class ApproveRecord extends AuditDomain { private String module; // 模块名称 - @Column("module_name") + @Property(column = "module_name") private String moduleName; // 数据id - @Column("data_id") + @Property(column = "data_id") private String dataId; // 审批人 diff --git a/flyfish-backup/src/main/java/dev/flyfish/framework/backup/domain/Backup.java b/flyfish-backup/src/main/java/dev/flyfish/framework/backup/domain/Backup.java index 52209a0..6d08056 100644 --- a/flyfish-backup/src/main/java/dev/flyfish/framework/backup/domain/Backup.java +++ b/flyfish-backup/src/main/java/dev/flyfish/framework/backup/domain/Backup.java @@ -1,12 +1,11 @@ package dev.flyfish.framework.backup.domain; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.AuditDomain; import dev.flyfish.framework.enums.NamedEnum; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; /** * 系统备份 @@ -15,8 +14,7 @@ import org.springframework.data.relational.core.mapping.Table; */ @Getter @Setter -@Document(collection = "backups") -@Table("t_backup") +@Entity(collection = "backups", table = "t_backup") public class Backup extends AuditDomain { // 文件路径 diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Entity.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Entity.java new file mode 100644 index 0000000..05296e6 --- /dev/null +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Entity.java @@ -0,0 +1,53 @@ +package dev.flyfish.framework.annotations; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; + +import java.lang.annotation.*; + +/** + * 实体表示 + * 同时兼容mongo和mysql + * + * @author wangyu + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Document +@Table +public @interface Entity { + + /** + * 显示名称 + * + * @return 结果 + */ + @AliasFor("title") + String value() default ""; + + /** + * 显示名称(别名) + * + * @return 结果 + */ + @AliasFor("value") + String title() default ""; + + /** + * 表名 + * + * @return 结果 + */ + @AliasFor(annotation = Table.class, attribute = "value") + String table() default ""; + + /** + * mongodb集合名 + * + * @return 结果 + */ + @AliasFor(annotation = Document.class, attribute = "value") + String collection() default ""; +} diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Property.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Property.java index b4df740..f90e8e2 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Property.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/Property.java @@ -1,6 +1,8 @@ package dev.flyfish.framework.annotations; import org.springframework.core.annotation.AliasFor; +import org.springframework.data.mongodb.core.mapping.Field; +import org.springframework.data.relational.core.mapping.Column; import java.lang.annotation.*; @@ -13,6 +15,8 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented @Repeatable(Properties.class) +@Column +@Field public @interface Property { /** @@ -20,8 +24,17 @@ public @interface Property { * * @return 结果 */ + @AliasFor(annotation = Field.class, attribute = "value") String key() default ""; + /** + * 指定数据库列名 + * + * @return 结果 + */ + @AliasFor(annotation = Column.class, attribute = "value") + String column() default ""; + /** * 显示标题 * diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/query/QueryField.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/query/QueryField.java index be6af7c..4f962be 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/query/QueryField.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/annotations/query/QueryField.java @@ -34,9 +34,7 @@ public @interface QueryField { Type type() default Type.EQ; /** - * 拼接在某个字段前 - * - * @return + * @return 拼接在某个字段前 */ String before() default ""; diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/base/AuditDomain.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/base/AuditDomain.java index b3819d1..6e24c40 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/base/AuditDomain.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/base/AuditDomain.java @@ -7,7 +7,6 @@ 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.relational.core.mapping.Column; import java.time.LocalDateTime; @@ -24,16 +23,14 @@ public abstract class AuditDomain extends Domain { * 创建日期 */ @CreatedDate - @Property(value = "创建日期", readonly = true) - @Column("create_time") + @Property(value = "创建日期", column = "create_time", readonly = true) protected LocalDateTime createTime; /** * 修改日期 */ @LastModifiedDate - @Property(value = "更新日期", readonly = true) - @Column("modify_time") + @Property(value = "更新日期", column = "modify_time", readonly = true) protected LocalDateTime modifyTime; /** @@ -46,8 +43,7 @@ public abstract class AuditDomain extends Domain { /** * 创建人id */ - @Property(readonly = true) - @Column("creator_id") + @Property(column = "creator_id", readonly = true) protected String creatorId; /** @@ -60,7 +56,6 @@ public abstract class AuditDomain extends Domain { /** * 修改人id */ - @Property(readonly = true) - @Column("modifier_id") + @Property(column = "modifier_id", readonly = true) protected String modifierId; } diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Department.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Department.java index 65828a6..f7e8b8a 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Department.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Department.java @@ -1,18 +1,16 @@ package dev.flyfish.framework.domain.po; +import dev.flyfish.framework.annotations.Entity; +import dev.flyfish.framework.annotations.Property; import dev.flyfish.framework.domain.tree.TreeDomain; import lombok.*; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Column; -import org.springframework.data.relational.core.mapping.Table; /** * 部门 * * @author wangyu */ -@Document("departments") -@Table("t_department") +@Entity(table = "t_department", collection = "departments") @Getter @Setter @NoArgsConstructor @@ -25,7 +23,7 @@ public class Department extends TreeDomain { /** * 部门的完整名称 */ - @Column("full_name") + @Property(column = "full_name") private String fullName; /** diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/ExcelMapping.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/ExcelMapping.java index 7331250..c420567 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/ExcelMapping.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/ExcelMapping.java @@ -1,10 +1,9 @@ package dev.flyfish.framework.domain.po; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.AuditDomain; import lombok.Getter; import lombok.Setter; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; import java.util.Map; @@ -15,8 +14,7 @@ import java.util.Map; */ @Getter @Setter -@Document(collection = "excel-mappings") -@Table("t_excel_mapping") +@Entity(table = "t_excel_mapping", collection = "excel-mappings") public class ExcelMapping extends AuditDomain { // 映射关系 diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Permission.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Permission.java index 2b5ebb5..a51a7c7 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Permission.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Permission.java @@ -1,20 +1,18 @@ package dev.flyfish.framework.domain.po; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.tree.TreeDomain; import dev.flyfish.framework.enums.NamedEnum; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; /** * 权限 * * @author wangyu */ -@Document("permissions") -@Table("t_permission") +@Entity(table = "t_permission", collection = "permissions") @Data public class Permission extends TreeDomain { diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Role.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Role.java index be89165..af8d9e1 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Role.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/Role.java @@ -1,13 +1,12 @@ package dev.flyfish.framework.domain.po; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.AuditDomain; import dev.flyfish.framework.enums.NamedEnum; import dev.flyfish.framework.enums.RoleType; import dev.flyfish.framework.relational.mapping.Association; import lombok.*; import org.springframework.data.mongodb.core.mapping.DBRef; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; import java.util.List; @@ -16,8 +15,7 @@ import java.util.List; * * @author wangyu */ -@Document("roles") -@Table("t_role") +@Entity(table = "t_role", collection = "roles") @Data @Builder @AllArgsConstructor diff --git a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/User.java b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/User.java index 992c209..bbb46aa 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/User.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/dev/flyfish/framework/domain/po/User.java @@ -2,6 +2,8 @@ package dev.flyfish.framework.domain.po; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; +import dev.flyfish.framework.annotations.Entity; +import dev.flyfish.framework.annotations.Property; import dev.flyfish.framework.domain.base.AuditDomain; import dev.flyfish.framework.domain.base.IUser; import dev.flyfish.framework.enums.UserStatus; @@ -15,15 +17,12 @@ import lombok.NoArgsConstructor; import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.DBRef; -import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.relational.core.mapping.Column; -import org.springframework.data.relational.core.mapping.Table; import java.time.LocalDateTime; import java.util.List; -@Document("users") -@Table("t_user") +@Entity(table = "t_user", collection = "users", title = "用户表") @Data @Builder @NoArgsConstructor @@ -74,7 +73,7 @@ public class User extends AuditDomain implements IUser { * 有效期 */ @JsonFormat(pattern = "yyyy-MM-dd") - @Column("valid_date") + @Property(column = "valid_date") private LocalDateTime validDate; /** diff --git a/flyfish-data/flyfish-data-mongodb/src/test/java/dev/flyfish/test/mongo/repository/TestDO.java b/flyfish-data/flyfish-data-mongodb/src/test/java/dev/flyfish/test/mongo/repository/TestDO.java index 88869a2..ef682bb 100644 --- a/flyfish-data/flyfish-data-mongodb/src/test/java/dev/flyfish/test/mongo/repository/TestDO.java +++ b/flyfish-data/flyfish-data-mongodb/src/test/java/dev/flyfish/test/mongo/repository/TestDO.java @@ -1,10 +1,10 @@ package dev.flyfish.test.mongo.repository; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.AuditDomain; import lombok.Data; -import org.springframework.data.mongodb.core.mapping.Document; -@Document("test") +@Entity(table = "test", collection = "test") @Data public class TestDO extends AuditDomain { diff --git a/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/AutoComplete.java b/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/AutoComplete.java index 03c2bc2..0dba0a6 100644 --- a/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/AutoComplete.java +++ b/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/AutoComplete.java @@ -1,10 +1,9 @@ package dev.flyfish.framework.dict.domain; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.AuditDomain; import lombok.Getter; import lombok.Setter; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; import java.util.List; @@ -15,8 +14,7 @@ import java.util.List; */ @Getter @Setter -@Document(collection = "auto-completes") -@Table("t_auto_complete") +@Entity(table = "t_auto_complete", collection = "auto-completes") public class AutoComplete extends AuditDomain { // 候选值列表 diff --git a/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/Dictionary.java b/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/Dictionary.java index d73924c..ea69f9a 100644 --- a/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/Dictionary.java +++ b/flyfish-dict/src/main/java/dev/flyfish/framework/dict/domain/Dictionary.java @@ -1,11 +1,10 @@ package dev.flyfish.framework.dict.domain; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.AuditDomain; import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; import java.util.List; import java.util.Objects; @@ -17,8 +16,7 @@ import java.util.Objects; */ @Getter @Setter -@Document(collection = "dictionaries") -@Table("t_dictionary") +@Entity(table = "t_dictionary", collection = "dictionaries") public class Dictionary extends AuditDomain { // 字典表的值 diff --git a/flyfish-file/src/main/java/dev/flyfish/framework/file/domain/Attachment.java b/flyfish-file/src/main/java/dev/flyfish/framework/file/domain/Attachment.java index dab11bc..952e336 100644 --- a/flyfish-file/src/main/java/dev/flyfish/framework/file/domain/Attachment.java +++ b/flyfish-file/src/main/java/dev/flyfish/framework/file/domain/Attachment.java @@ -1,13 +1,11 @@ package dev.flyfish.framework.file.domain; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.annotations.Property; import dev.flyfish.framework.domain.base.AuditDomain; import lombok.*; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; -@Document(collection = "attachments") -@Table("t_attachment") +@Entity(table = "t_attachment", collection = "attachments") @Getter @Setter @AllArgsConstructor diff --git a/flyfish-form/src/main/java/dev/flyfish/framework/form/domain/OnlineForm.java b/flyfish-form/src/main/java/dev/flyfish/framework/form/domain/OnlineForm.java index 9be6607..2acebaf 100644 --- a/flyfish-form/src/main/java/dev/flyfish/framework/form/domain/OnlineForm.java +++ b/flyfish-form/src/main/java/dev/flyfish/framework/form/domain/OnlineForm.java @@ -1,11 +1,10 @@ package dev.flyfish.framework.form.domain; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.bean.ObjectMap; import dev.flyfish.framework.domain.base.Domain; import lombok.Data; import org.springframework.data.mongodb.core.index.CompoundIndex; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.data.relational.core.mapping.Table; import java.util.ArrayList; import java.util.List; @@ -13,9 +12,8 @@ import java.util.List; /** * 在线表单 */ -@Document("online-forms") +@Entity(table = "t_online_form", collection = "online") @CompoundIndex(name = "uniq_code", def = "{code: 1}", unique = true) -@Table("t_online_form") @Data public class OnlineForm extends Domain { diff --git a/flyfish-logging/src/main/java/dev/flyfish/framework/logging/domain/Log.java b/flyfish-logging/src/main/java/dev/flyfish/framework/logging/domain/Log.java index 3e5a0ba..6d72c52 100644 --- a/flyfish-logging/src/main/java/dev/flyfish/framework/logging/domain/Log.java +++ b/flyfish-logging/src/main/java/dev/flyfish/framework/logging/domain/Log.java @@ -1,18 +1,16 @@ package dev.flyfish.framework.logging.domain; +import dev.flyfish.framework.annotations.Entity; import dev.flyfish.framework.domain.base.Domain; import lombok.Data; -import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.relational.core.mapping.Column; -import org.springframework.data.relational.core.mapping.Table; import java.time.LocalDateTime; /** * 日志集合 */ -@Document("logs") -@Table("t_log") +@Entity(table = "t_log", collection = "logs") @Data public class Log extends Domain {