Skip to content

Commit f857c68

Browse files
committed
删除编译错误
1 parent daf9db1 commit f857c68

33 files changed

Lines changed: 793 additions & 0 deletions
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Spring Data JPA - CRUD
2+
3+
This module contains articles about CRUD operations in Spring Data JPA
4+
5+
### Relevant Articles:
6+
- [Spring Data JPA – Derived Delete Methods](https://www.baeldung.com/spring-data-jpa-deleteby)
7+
- [Spring Data JPA Delete and Relationships](https://www.baeldung.com/spring-data-jpa-delete)
8+
- [INSERT Statement in JPA](https://www.baeldung.com/jpa-insert)
9+
- [Spring Data JPA Batch Inserts](https://www.baeldung.com/spring-data-jpa-batch-inserts)
10+
- [Batch Insert/Update with Hibernate/JPA](https://www.baeldung.com/jpa-hibernate-batch-insert-update)
11+
- [Difference Between save() and saveAndFlush() in Spring Data JPA](https://www.baeldung.com/spring-data-jpa-save-saveandflush)
12+
- [How to Implement a Soft Delete with Spring JPA](https://www.baeldung.com/spring-jpa-soft-delete)
13+
- More articles: [[next-->]](/persistence-modules/spring-data-jpa-crud-2)
14+
15+
### Eclipse Config
16+
After importing the project into Eclipse, you may see the following error:
17+
"No persistence xml file found in project"
18+
19+
This can be ignored:
20+
- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project"
21+
Or:
22+
- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<artifactId>spring-data-jpa-crud</artifactId>
7+
<name>spring-data-jpa-crud</name>
8+
9+
<parent>
10+
<groupId>com.baeldung</groupId>
11+
<artifactId>parent-boot-2</artifactId>
12+
<version>0.0.1-SNAPSHOT</version>
13+
<relativePath>../../parent-boot-2</relativePath>
14+
</parent>
15+
16+
<dependencies>
17+
<!-- Prod Dependencies -->
18+
<dependency>
19+
<groupId>org.springframework.boot</groupId>
20+
<artifactId>spring-boot-starter-data-jpa</artifactId>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.springframework.boot</groupId>
24+
<artifactId>spring-boot-starter-web</artifactId>
25+
</dependency>
26+
<dependency>
27+
<groupId>com.google.guava</groupId>
28+
<artifactId>guava</artifactId>
29+
<version>${guava.version}</version>
30+
</dependency>
31+
<dependency>
32+
<groupId>com.h2database</groupId>
33+
<artifactId>h2</artifactId>
34+
</dependency>
35+
<dependency>
36+
<groupId>net.ttddyy</groupId>
37+
<artifactId>datasource-proxy</artifactId>
38+
<version>${datasource-proxy.version}</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>org.postgresql</groupId>
42+
<artifactId>postgresql</artifactId>
43+
</dependency>
44+
<dependency>
45+
<groupId>com.h2database</groupId>
46+
<artifactId>h2</artifactId>
47+
<scope>runtime</scope>
48+
</dependency>
49+
<!-- Test containers only dependencies -->
50+
<dependency>
51+
<groupId>org.testcontainers</groupId>
52+
<artifactId>postgresql</artifactId>
53+
<version>${testcontainers.version}</version>
54+
<scope>test</scope>
55+
</dependency>
56+
<!-- Test containers only dependencies -->
57+
</dependencies>
58+
59+
<properties>
60+
<datasource-proxy.version>1.4.1</datasource-proxy.version>
61+
<testcontainers.version>1.12.2</testcontainers.version>
62+
</properties>
63+
64+
</project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.baeldung;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
6+
7+
@SpringBootApplication
8+
@EnableJpaRepositories
9+
public class Application {
10+
11+
public static void main(String[] args) {
12+
SpringApplication.run(Application.class, args);
13+
}
14+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.baeldung.boot;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.boot.autoconfigure.domain.EntityScan;
6+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
7+
8+
@SpringBootApplication
9+
@EnableJpaRepositories("com.baeldung")
10+
@EntityScan("com.baeldung")
11+
public class Application {
12+
13+
public static void main(String[] args) {
14+
SpringApplication.run(Application.class, args);
15+
}
16+
17+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.baeldung.boot.daos;
2+
3+
import org.springframework.data.repository.CrudRepository;
4+
import org.springframework.stereotype.Repository;
5+
import org.springframework.transaction.annotation.Transactional;
6+
7+
import com.baeldung.boot.domain.Customer;
8+
9+
/**
10+
* JPA CrudRepository interface
11+
*
12+
* @author ysharma2512
13+
*
14+
*/
15+
@Repository
16+
@Transactional
17+
public interface CustomerRepository extends CrudRepository<Customer, Long>{
18+
19+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.baeldung.boot.web.controllers;
2+
3+
import java.net.URISyntaxException;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.PostMapping;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
import com.baeldung.boot.daos.CustomerRepository;
12+
import com.baeldung.boot.domain.Customer;
13+
14+
/**
15+
* A simple controller to test the JPA CrudRepository operations
16+
* controllers
17+
*
18+
* @author ysharma2512
19+
*
20+
*/
21+
@RestController
22+
public class CustomerController {
23+
24+
CustomerRepository customerRepository;
25+
26+
public CustomerController(CustomerRepository customerRepository2) {
27+
this.customerRepository = customerRepository2;
28+
}
29+
30+
@PostMapping("/customers")
31+
public ResponseEntity<List<Customer>> insertCustomers() throws URISyntaxException {
32+
Customer c1 = new Customer("James", "Gosling");
33+
Customer c2 = new Customer("Doug", "Lea");
34+
Customer c3 = new Customer("Martin", "Fowler");
35+
Customer c4 = new Customer("Brian", "Goetz");
36+
List<Customer> customers = Arrays.asList(c1, c2, c3, c4);
37+
customerRepository.saveAll(customers);
38+
return ResponseEntity.ok(customers);
39+
}
40+
41+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.baeldung.entity;
2+
3+
import javax.persistence.Entity;
4+
import javax.persistence.Id;
5+
6+
@Entity
7+
public class Employee {
8+
9+
@Id
10+
private Long id;
11+
private String name;
12+
13+
public Employee() {
14+
}
15+
16+
public Employee(Long id, String name) {
17+
this.id = id;
18+
this.name = name;
19+
}
20+
21+
public Long getId() {
22+
return id;
23+
}
24+
25+
public void setId(Long id) {
26+
this.id = id;
27+
}
28+
29+
public String getName() {
30+
return name;
31+
}
32+
33+
public void setName(String name) {
34+
this.name = name;
35+
}
36+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.baeldung.repository;
2+
3+
import org.springframework.data.jpa.repository.JpaRepository;
4+
5+
import com.baeldung.entity.Employee;
6+
7+
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
8+
9+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.baeldung.repository;
2+
3+
import java.util.List;
4+
5+
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Modifying;
7+
import org.springframework.data.jpa.repository.Query;
8+
import org.springframework.data.repository.query.Param;
9+
import org.springframework.stereotype.Repository;
10+
11+
import com.baeldung.entity.Fruit;
12+
13+
@Repository
14+
public interface FruitRepository extends JpaRepository<Fruit, Long> {
15+
16+
Long deleteByName(String name);
17+
18+
List<Fruit> deleteByColor(String color);
19+
20+
Long removeByName(String name);
21+
22+
List<Fruit> removeByColor(String color);
23+
24+
@Modifying
25+
@Query("delete from Fruit f where f.name=:name or f.color=:color")
26+
int deleteFruits(@Param("name") String name, @Param("color") String color);
27+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.baeldung.softdelete;
2+
3+
4+
import java.io.Serializable;
5+
6+
import javax.persistence.Entity;
7+
import javax.persistence.GeneratedValue;
8+
import javax.persistence.GenerationType;
9+
import javax.persistence.Id;
10+
import javax.persistence.Table;
11+
12+
import org.hibernate.annotations.Filter;
13+
import org.hibernate.annotations.FilterDef;
14+
import org.hibernate.annotations.ParamDef;
15+
import org.hibernate.annotations.SQLDelete;
16+
17+
@Entity
18+
@Table(name = "tbl_products")
19+
@SQLDelete(sql = "UPDATE tbl_products SET deleted = true WHERE id=?")
20+
@FilterDef(name = "deletedProductFilter", parameters = @ParamDef(name = "isDeleted", type = "boolean"))
21+
@Filter(name = "deletedProductFilter", condition = "deleted = :isDeleted")
22+
public class Product implements Serializable {
23+
24+
private static final long serialVersionUID = 1L;
25+
26+
@Id
27+
@GeneratedValue(strategy = GenerationType.IDENTITY)
28+
private Long id;
29+
30+
private String name;
31+
32+
private double price;
33+
34+
private boolean deleted = Boolean.FALSE;
35+
36+
public Long getId() {
37+
return id;
38+
}
39+
40+
public void setId(Long id) {
41+
this.id = id;
42+
}
43+
44+
public String getName() {
45+
return name;
46+
}
47+
48+
public void setName(String name) {
49+
this.name = name;
50+
}
51+
52+
public double getPrice() {
53+
return price;
54+
}
55+
56+
public void setPrice(double price) {
57+
this.price = price;
58+
}
59+
60+
public boolean isDeleted() {
61+
return deleted;
62+
}
63+
64+
public void setDeleted(boolean deleted) {
65+
this.deleted = deleted;
66+
}
67+
68+
}

0 commit comments

Comments
 (0)