[Java Spring Data] Query by example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Test
public void queryByExample() {
    System.out.println("\nFind the Department with the name 'Humanities' \n" +
            departmentRepository.findOne(Example.of(new Department("Humanities", null))));
 
 
    System.out.println("\nFind Departments with the first name of the chair is 'John'");
    departmentRepository.findAll(Example.of(
            new Department(null, new Staff(new Person("John", null))))).forEach(System.out::println);
 
    System.out.println("\nFind All Departments with the name ending in 'sciences', case insensitive");
    departmentRepository.findAll(Example.of(new Department("sciences", null),
            ExampleMatcher.matching().
                    withIgnoreCase().
                    withStringMatcher(ExampleMatcher.StringMatcher.ENDING))).forEach(System.out::println);
 
}

  

复制代码
@Embeddable
public class Person {
    @Column
    private String firstName;

    @Column
    private String lastName;

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    protected Person() {
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    @Override
    public String toString() {
        return  " firstName='" + firstName + '\'' +
                ", lastName='" + lastName + "\' ";
    }
}
复制代码
复制代码
@Entity
@Table(name="Department")
public class Department {
    @Id
    @GeneratedValue
    private Integer id;

    @Column
    private String name;

    @OneToOne
    private Staff chair;

    @OneToMany(fetch = FetchType.EAGER,mappedBy="department",
            cascade = CascadeType.ALL)
    private List<Course> courses = new ArrayList<>();

    public Department(String name, Staff chair) {
        this.name = name;
        this.chair = chair;
    }

    protected Department() {
    }

    public Integer getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void addCourse(Course course) {
        courses.add(course);
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setChair(Staff chair) {
        this.chair = chair;
    }

    public void setCourses(List<Course> courses) {
        this.courses = courses;
    }

    @Override
    public String toString() {
        return "Department{" +
                "chair=" + chair +
                ", name='" + name + '\'' +
                ", id=" + id +
                '}';
    }
}
复制代码

 

posted @   Zhentiw  阅读(137)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-12-18 [Schematics] 3. Generate module, service, guard with @nrwl/workspace
2018-12-18 [Algorithms] Quicksort algorithm using TypeScript
2018-12-18 [Algorithms] Tree Data Structure in JavaScript
2017-12-18 [Python] Indexing An Array With Another Array with numpy
2017-12-18 [Python] Accessing Array Elements
2017-12-18 [Python] ndArray of numpy
2017-12-18 [React] Implement a Higher Order Component with Render Props
点击右上角即可分享
微信分享提示