feat: 增加枚举的使用
This commit is contained in:
@@ -190,7 +190,7 @@ public class TestApplication {
|
|||||||
builder.in(root.get(Employee_.NAME)).value(List.of("Tom", "Mike")),
|
builder.in(root.get(Employee_.NAME)).value(List.of("Tom", "Mike")),
|
||||||
builder.between(root.get(Employee_.age), 0, 50),
|
builder.between(root.get(Employee_.age), 0, 50),
|
||||||
builder.isNotEmpty(root.get(Employee_.company).get(Company_.employees)),
|
builder.isNotEmpty(root.get(Employee_.company).get(Company_.employees)),
|
||||||
builder.notEqual(root.get(Employee_.company).get(Company_.name), "Apple")
|
builder.isMember(Company.Industry.MEDIA, root.get(Employee_.company).get(Company_.industries))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -209,6 +209,8 @@ public class TestApplication {
|
|||||||
.and(QEmployee.employee.age.between(0, 50))
|
.and(QEmployee.employee.age.between(0, 50))
|
||||||
.and(QEmployee.employee.company().employees.isNotEmpty())
|
.and(QEmployee.employee.company().employees.isNotEmpty())
|
||||||
.and(QEmployee.employee.company().employees.any().name.ne("Tom"))
|
.and(QEmployee.employee.company().employees.any().name.ne("Tom"))
|
||||||
|
.and(QEmployee.employee.company().industries.contains(Company.Industry.MEDIA))
|
||||||
|
.and(QEmployee.employee.connections.containsKey(Employee.ConnectionType.EMAIL))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,16 @@
|
|||||||
package com.lanyuanxiaoyao.service.template.entity;
|
package com.lanyuanxiaoyao.service.template.entity;
|
||||||
|
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.ElementCollection;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
|
import jakarta.persistence.EnumType;
|
||||||
|
import jakarta.persistence.Enumerated;
|
||||||
|
import jakarta.persistence.ForeignKey;
|
||||||
|
import jakarta.persistence.JoinTable;
|
||||||
import jakarta.persistence.OneToMany;
|
import jakarta.persistence.OneToMany;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -36,4 +43,23 @@ public class Company extends SimpleEntity {
|
|||||||
@OneToMany(mappedBy = "company")
|
@OneToMany(mappedBy = "company")
|
||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
private Set<Employee> employees;
|
private Set<Employee> employees;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
@JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(nullable = false)
|
||||||
|
private Set<Industry> industries = new HashSet<>();
|
||||||
|
|
||||||
|
public enum Industry {
|
||||||
|
TECHNOLOGY,
|
||||||
|
FINANCE,
|
||||||
|
MEDIA,
|
||||||
|
SERVICE,
|
||||||
|
GOVERNMENT,
|
||||||
|
EDUCATION,
|
||||||
|
HEALTHCARE,
|
||||||
|
CONSTRUCTION,
|
||||||
|
RETAIL,
|
||||||
|
OTHER,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,20 @@ package com.lanyuanxiaoyao.service.template.entity;
|
|||||||
|
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.ConstraintMode;
|
import jakarta.persistence.ConstraintMode;
|
||||||
|
import jakarta.persistence.ElementCollection;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.EntityListeners;
|
import jakarta.persistence.EntityListeners;
|
||||||
import jakarta.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
import jakarta.persistence.Enumerated;
|
import jakarta.persistence.Enumerated;
|
||||||
import jakarta.persistence.ForeignKey;
|
import jakarta.persistence.ForeignKey;
|
||||||
import jakarta.persistence.JoinColumn;
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.JoinTable;
|
||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.MapKeyEnumerated;
|
||||||
import jakarta.persistence.NamedAttributeNode;
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
import jakarta.persistence.NamedEntityGraph;
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
@@ -51,8 +56,20 @@ public class Employee extends SimpleEntity {
|
|||||||
@ToString.Exclude
|
@ToString.Exclude
|
||||||
private Company company;
|
private Company company;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
@JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
|
||||||
|
@MapKeyEnumerated(EnumType.STRING)
|
||||||
|
@Column(nullable = false)
|
||||||
|
private Map<ConnectionType, String> connections = new HashMap<>();
|
||||||
|
|
||||||
public enum Role {
|
public enum Role {
|
||||||
USER,
|
USER,
|
||||||
ADMIN,
|
ADMIN,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ConnectionType {
|
||||||
|
EMAIL,
|
||||||
|
PHONE,
|
||||||
|
ADDRESS,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user