Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d0ace55

Browse files
author
Rajeev Kumar Singh
committed
Examples and Readme
1 parent 3b4a927 commit d0ace55

File tree

10 files changed

+93
-43
lines changed

10 files changed

+93
-43
lines changed

‎Readme.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## Hibernate Tutorials and Demos with Spring Boot and JPA
2+
3+
+ 1. [Hibernate One to One Mapping Example with Spring Boot and JPA](https://www.callicoder.com/hibernate-spring-boot-jpa-one-to-one-mapping-example/)
4+
5+
+ 2. [Hibernate One to Many Mapping Example with Spring Boot and JPA](https://www.callicoder.com/hibernate-spring-boot-jpa-one-to-many-mapping-example/)
6+
7+
+ 3. [Hibernate Many to Many Mapping Example with Spring Boot and JPA](https://www.callicoder.com/hibernate-spring-boot-jpa-many-to-many-mapping-example/)
8+
9+
+ 4. [Hibernate Embeddable Type Example with Spring Boot and JPA](https://www.callicoder.com/hibernate-spring-boot-jpa-embeddable-demo/)
10+
11+
+ 5. [Hibernate Composite Primary Key Example with Spring Boot and JPA](https://www.callicoder.com/hibernate-spring-boot-jpa-composite-primary-key-example/)

‎hibernate-composite-primary-key-demo/src/main/java/com/example/hibernate/HibernateCompositePrimaryKeyDemoApplication.java‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,21 @@ public static void main(String[] args) {
2020

2121
@Override
2222
public void run(String... args) throws Exception {
23+
// Cleanup employees table
2324
employeeRepository.deleteAllInBatch();
2425

25-
Employee employee = new Employee(new EmployeeIdentity("E-123", "D-457"), "Rajeev Kumar Singh", "rajeev@callicoder.com", "+91-9999999999");
26+
// Insert a new Employee in the database
27+
Employee employee = new Employee(new EmployeeIdentity("E-123", "D-457"),
28+
"Rajeev Kumar Singh",
29+
"rajeev@callicoder.com",
30+
"+91-9999999999");
2631

2732
employeeRepository.save(employee);
33+
34+
// Retrieving an Employee Record with the composite primary key
35+
employeeRepository.findOne(new EmployeeIdentity("E-123", "D-457"));
36+
37+
// Retrieving all the employees of a particular company
38+
employeeRepository.findByEmployeeIdentityCompanyId("D-457");
2839
}
2940
}

‎hibernate-composite-primary-key-demo/src/main/java/com/example/hibernate/model/Employee.java‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class Employee {
1515

1616
@EmbeddedId
17-
private EmployeeIdentity identity;
17+
private EmployeeIdentity employeeIdentity;
1818

1919
@NotNull
2020
private String name;
@@ -30,19 +30,19 @@ public Employee() {
3030

3131
}
3232

33-
public Employee(EmployeeIdentity identity, String name, String email, String phoneNumber) {
34-
this.identity = identity;
33+
public Employee(EmployeeIdentity employeeIdentity, String name, String email, String phoneNumber) {
34+
this.employeeIdentity = employeeIdentity;
3535
this.name = name;
3636
this.email = email;
3737
this.phoneNumber = phoneNumber;
3838
}
3939

40-
public EmployeeIdentity getIdentity() {
41-
return identity;
40+
public EmployeeIdentity getEmployeeIdentity() {
41+
return employeeIdentity;
4242
}
4343

44-
public void setIdentity(EmployeeIdentity identity) {
45-
this.identity = identity;
44+
public void setEmployeeIdentity(EmployeeIdentity employeeIdentity) {
45+
this.employeeIdentity = employeeIdentity;
4646
}
4747

4848
public String getName() {

‎hibernate-composite-primary-key-demo/src/main/java/com/example/hibernate/model/EmployeeIdentity.java‎

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,34 @@
1010
@Embeddable
1111
public class EmployeeIdentity implements Serializable {
1212
@NotNull
13-
private String employeeCode;
13+
private String employeeId;
1414

1515
@NotNull
16-
private String companyCode;
16+
private String companyId;
1717

1818
public EmployeeIdentity() {
1919

2020
}
2121

22-
public EmployeeIdentity(String employeeCode, String companyCode) {
23-
this.employeeCode = employeeCode;
24-
this.companyCode = companyCode;
22+
public EmployeeIdentity(String employeeId, String companyId) {
23+
this.employeeId = employeeId;
24+
this.companyId = companyId;
2525
}
2626

27-
public String getEmployeeCode() {
28-
return employeeCode;
27+
public String getEmployeeId() {
28+
return employeeId;
2929
}
3030

31-
public void setEmployeeCode(String employeeCode) {
32-
this.employeeCode = employeeCode;
31+
public void setEmployeeId(String employeeId) {
32+
this.employeeId = employeeId;
3333
}
3434

35-
public String getCompanyCode() {
36-
return companyCode;
35+
public String getCompanyId() {
36+
return companyId;
3737
}
3838

39-
public void setCompanyCode(String companyCode) {
40-
this.companyCode = companyCode;
39+
public void setCompanyId(String companyId) {
40+
this.companyId = companyId;
4141
}
4242

4343
@Override
@@ -47,14 +47,14 @@ public boolean equals(Object o) {
4747

4848
EmployeeIdentity that = (EmployeeIdentity) o;
4949

50-
if (!employeeCode.equals(that.employeeCode)) return false;
51-
return companyCode.equals(that.companyCode);
50+
if (!employeeId.equals(that.employeeId)) return false;
51+
return companyId.equals(that.companyId);
5252
}
5353

5454
@Override
5555
public int hashCode() {
56-
int result = employeeCode.hashCode();
57-
result = 31 * result + companyCode.hashCode();
56+
int result = employeeId.hashCode();
57+
result = 31 * result + companyId.hashCode();
5858
return result;
5959
}
6060
}

‎hibernate-composite-primary-key-demo/src/main/java/com/example/hibernate/repository/EmployeeRepository.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55
import org.springframework.data.jpa.repository.JpaRepository;
66
import org.springframework.stereotype.Repository;
77

8+
import java.util.List;
9+
10+
811
/**
912
* Created by rajeevkumarsingh on 22/11/17.
1013
*/
1114
@Repository
1215
public interface EmployeeRepository extends JpaRepository<Employee, EmployeeIdentity> {
16+
List<Employee> findByEmployeeIdentityCompanyId(String companyId);
1317
}

‎hibernate-embeddable-demo/src/main/java/com/example/hibernate/model/Address.java‎

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,58 +2,65 @@
22

33
import javax.persistence.Embeddable;
44
import javax.validation.constraints.NotNull;
5+
import javax.validation.constraints.Size;
56

67
/**
78
* Created by rajeevkumarsingh on 22/11/17.
89
*/
910
@Embeddable
1011
public class Address {
1112
@NotNull
12-
private String houseNumber;
13+
@Size(max = 100)
14+
private String addressLine1;
1315

1416
@NotNull
15-
private String street;
17+
@Size(max = 100)
18+
private String addressLine2;
1619

1720
@NotNull
21+
@Size(max = 100)
1822
private String city;
1923

2024
@NotNull
25+
@Size(max = 100)
2126
private String state;
2227

2328
@NotNull
29+
@Size(max = 100)
2430
private String country;
2531

2632
@NotNull
33+
@Size(max = 6)
2734
private String zipCode;
2835

2936

3037
public Address() {
3138

3239
}
3340

34-
public Address(String houseNumber, String street, String city, String state, String country, String zipCode) {
35-
this.houseNumber = houseNumber;
36-
this.street = street;
41+
public Address(String addressLine1, String addressLine2, String city, String state, String country, String zipCode) {
42+
this.addressLine1 = addressLine1;
43+
this.addressLine2 = addressLine2;
3744
this.city = city;
3845
this.state = state;
3946
this.country = country;
4047
this.zipCode = zipCode;
4148
}
4249

43-
public String getHouseNumber() {
44-
return houseNumber;
50+
public String getAddressLine1() {
51+
return addressLine1;
4552
}
4653

47-
public void setHouseNumber(String houseNumber) {
48-
this.houseNumber = houseNumber;
54+
public void setAddressLine1(String addressLine1) {
55+
this.addressLine1 = addressLine1;
4956
}
5057

51-
public String getStreet() {
52-
return street;
58+
public String getAddressLine2() {
59+
return addressLine2;
5360
}
5461

55-
public void setStreet(String street) {
56-
this.street = street;
62+
public void setAddressLine2(String addressLine2) {
63+
this.addressLine2 = addressLine2;
5764
}
5865

5966
public String getCity() {

‎hibernate-embeddable-demo/src/main/java/com/example/hibernate/model/Name.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@
22

33
import javax.persistence.Embeddable;
44
import javax.validation.constraints.NotNull;
5+
import javax.validation.constraints.Size;
56

67
/**
78
* Created by rajeevkumarsingh on 22/11/17.
89
*/
910
@Embeddable
1011
public class Name {
1112
@NotNull
13+
@Size(max = 40)
1214
private String firstName;
15+
16+
@Size(max = 40)
1317
private String middleName;
18+
19+
@Size(max = 40)
1420
private String lastName;
1521

1622
public Name() {

‎hibernate-embeddable-demo/src/main/java/com/example/hibernate/model/User.java‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import org.hibernate.validator.constraints.Email;
44

55
import javax.persistence.*;
6-
import javax.validation.Valid;
76
import javax.validation.constraints.NotNull;
87

98
/**
@@ -16,16 +15,19 @@ public class User {
1615
@GeneratedValue(strategy = GenerationType.AUTO)
1716
private Long id;
1817

19-
@Valid
2018
@Embedded
2119
private Name name;
2220

2321
@NotNull
2422
@Email
23+
@Column(unique = true)
2524
private String email;
2625

27-
@Valid
2826
@Embedded
27+
@AttributeOverrides(value = {
28+
@AttributeOverride(name = "addressLine1", column = @Column(name = "houseNumber")),
29+
@AttributeOverride(name = "addressLine2", column = @Column(name = "street"))
30+
})
2931
private Address address;
3032

3133
public User() {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
package com.example.hibernate.repository;
22

3+
import com.example.hibernate.model.Name;
34
import com.example.hibernate.model.User;
45
import org.springframework.data.jpa.repository.JpaRepository;
56
import org.springframework.stereotype.Repository;
67

8+
import java.util.List;
9+
10+
711
/**
812
* Created by rajeevkumarsingh on 22/11/17.
913
*/
1014
@Repository
1115
public interface UserRepository extends JpaRepository<User, Long> {
16+
User findByEmail(String email);
17+
18+
List<User> findByName(Name name);
19+
20+
List<User> findByNameFirstName(String firstName);
1221

22+
List<User> findByAddressCountry(String country);
1323
}

‎hibernate-one-to-many-demo/src/main/java/com/example/hibernate/model/Post.java‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ public class Post {
3737

3838
@OneToMany(cascade = CascadeType.ALL,
3939
fetch = FetchType.LAZY,
40-
mappedBy = "post",
41-
orphanRemoval = true)
40+
mappedBy = "post")
4241
private Set<Comment> comments = new HashSet<>();
4342

4443
public Post() {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /