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.between(root.get(Employee_.age), 0, 50),
|
||||
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.company().employees.isNotEmpty())
|
||||
.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;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
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 java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -36,4 +43,23 @@ public class Company extends SimpleEntity {
|
||||
@OneToMany(mappedBy = "company")
|
||||
@ToString.Exclude
|
||||
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.ConstraintMode;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EntityListeners;
|
||||
import jakarta.persistence.EnumType;
|
||||
import jakarta.persistence.Enumerated;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.JoinTable;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.MapKeyEnumerated;
|
||||
import jakarta.persistence.NamedAttributeNode;
|
||||
import jakarta.persistence.NamedEntityGraph;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
@@ -51,8 +56,20 @@ public class Employee extends SimpleEntity {
|
||||
@ToString.Exclude
|
||||
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 {
|
||||
USER,
|
||||
ADMIN,
|
||||
}
|
||||
|
||||
public enum ConnectionType {
|
||||
EMAIL,
|
||||
PHONE,
|
||||
ADDRESS,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user