Skip to content

Commit 6e40eb2

Browse files
author
magnus aune
committed
corelations
1 parent a94fc39 commit 6e40eb2

File tree

6 files changed

+176
-20
lines changed

6 files changed

+176
-20
lines changed
Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,52 @@
11
package no.hvl.dat250.jpa.tutorial.creditcards;
22

3+
import java.util.ArrayList;
34
import java.util.Collection;
5+
import java.util.Iterator;
6+
47
import jakarta.persistence.*;
58
import lombok.Getter;
9+
import lombok.Setter;
610

711
@Entity
812
public class Address {
913
@Id
1014
@GeneratedValue(strategy = GenerationType.IDENTITY)
1115
private Long id;
12-
@Getter
16+
1317
private String street;
14-
@Getter
18+
1519
private Integer number;
1620

17-
@Getter
18-
@ManyToMany(mappedBy = "addresses")
19-
private final Collection<Customer> owners = null;
2021

22+
23+
@ManyToMany(targetEntity = Customer.class)
24+
private Collection<Customer> owners =new ArrayList<>();
25+
26+
public String getStreet() {
27+
return street;
28+
}
29+
30+
public void setStreet(String street) {
31+
this.street = street;
32+
}
33+
34+
public Integer getNumber() {
35+
return number;
36+
}
37+
38+
public void setNumber(Integer number) {
39+
this.number = number;
40+
}
41+
42+
public Collection<Customer> getOwners() {
43+
return owners;
44+
}
45+
46+
public void setOwners(Collection<Customer> owners) {
47+
this.owners = owners;
48+
}
49+
public void addOwner(Customer customer) {
50+
owners.add(customer);
51+
}
2152
}
Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,39 @@
11
package no.hvl.dat250.jpa.tutorial.creditcards;
22

33
import jakarta.persistence.*;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
7+
import java.util.ArrayList;
48
import java.util.Collection;
59

610
@Entity
711
public class Bank {
12+
@Getter
813
@Id
914
@GeneratedValue(strategy = GenerationType.IDENTITY)
1015
private Long id;
16+
1117
private String name;
1218
@OneToMany(mappedBy = "bank")
13-
private final Collection<CreditCard> creditCards = null;
14-
15-
public Long getId() {
16-
return id;
17-
}
19+
private Collection<CreditCard> creditCards = new ArrayList<>();
1820

1921
public String getName() {
20-
// TODO: implement method!
2122
return name;
2223
}
2324

25+
public void setName(String name) {
26+
this.name = name;
27+
}
28+
2429
public Collection<CreditCard> getOwnedCards() {
25-
// TODO: implement method!
2630
return creditCards;
2731
}
32+
33+
public void setCreditCards(Collection<CreditCard> creditCards) {
34+
this.creditCards = creditCards;
35+
}
36+
public void addCreditCard(CreditCard creditCard) {
37+
creditCards.add(creditCard);
38+
}
2839
}

src/main/java/no/hvl/dat250/jpa/tutorial/creditcards/CreditCard.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,55 @@
22

33
import jakarta.persistence.*;
44
import lombok.Getter;
5+
import lombok.Setter;
56

67
@Entity
78
public class CreditCard {
89

910
@Id
1011
@GeneratedValue(strategy = GenerationType.IDENTITY)
1112
private Long id;
13+
14+
1215
@Getter
1316
private Integer number;
17+
1418
@Getter
1519
private Integer balance;
20+
1621
@Getter
1722
private Integer creditLimit;
1823

24+
1925
@ManyToOne
2026
private Bank bank;
2127

28+
2229
@Getter
2330
@ManyToOne
2431
private Pincode pincode;
2532

2633
public Bank getOwningBank() {
2734
return bank;
2835
}
36+
37+
public void setNumber(Integer number) {
38+
this.number = number;
39+
}
40+
41+
public void setBalance(Integer balance) {
42+
this.balance = balance;
43+
}
44+
45+
public void setCreditLimit(Integer creditLimit) {
46+
this.creditLimit = creditLimit;
47+
}
48+
49+
public void setBank(Bank bank) {
50+
this.bank = bank;
51+
}
52+
53+
public void setPincode(Pincode pincode) {
54+
this.pincode = pincode;
55+
}
2956
}
Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,60 @@
11
package no.hvl.dat250.jpa.tutorial.creditcards;
22

3+
import java.util.ArrayList;
34
import java.util.Collection;
45
import jakarta.persistence.*;
56
import lombok.Getter;
7+
import lombok.Setter;
68

79
@Entity
810
public class Customer {
911
@Id
1012
@GeneratedValue(strategy = GenerationType.IDENTITY)
1113
private Long id;
12-
@Getter
14+
15+
1316
private String name;
1417

15-
@Getter
16-
@ManyToMany
17-
private final Collection<Address> addresses = null;
1818

19-
@OneToMany(mappedBy = "customer")
20-
private final Collection<CreditCard> creditcards = null;
19+
@ManyToMany(targetEntity = Address.class)
20+
private Collection<Address> addresses = new ArrayList<>();
21+
22+
@OneToMany
23+
private Collection<CreditCard> CreditCards;
24+
25+
public String getName() {
26+
return name;
27+
}
28+
29+
public void setName(String name) {
30+
this.name = name;
31+
}
32+
33+
public Collection<Address> getAddresses() {
34+
return addresses;
35+
}
36+
37+
public void setAddresses(Collection<Address> addresses) {
38+
this.addresses = addresses;
39+
}
40+
public void addAddress(Address address) {
41+
addresses.add(address);
42+
}
2143

2244
public Collection<CreditCard> getCreditCards() {
23-
return creditcards;
45+
return CreditCards;
46+
}
47+
48+
public void setCreditCards(Collection<CreditCard> creditCards) {
49+
CreditCards = creditCards;
50+
}
51+
public void addCreditCard(CreditCard creditCard) {
52+
CreditCards.add(creditCard);
2453
}
2554
}
55+
56+
57+
58+
59+
60+

src/main/java/no/hvl/dat250/jpa/tutorial/creditcards/Pincode.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,29 @@
22

33
import jakarta.persistence.*;
44
import lombok.Getter;
5+
import lombok.Setter;
56

67
@Entity
78
public class Pincode {
89
@Getter
910
@Id
1011
@GeneratedValue(strategy = GenerationType.IDENTITY)
1112
private Long id;
13+
1214
private String pincode;
15+
1316
@Getter
1417
private Integer count;
1518

1619
public String getCode() {
1720
return pincode;
1821
}
22+
23+
public void setPincode(String pincode) {
24+
this.pincode = pincode;
25+
}
26+
27+
public void setCount(Integer count) {
28+
this.count = count;
29+
}
1930
}

src/main/java/no/hvl/dat250/jpa/tutorial/creditcards/driver/CreditCardsMain.java

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import jakarta.persistence.EntityManager;
44
import jakarta.persistence.EntityManagerFactory;
55
import jakarta.persistence.Persistence;
6+
import no.hvl.dat250.jpa.tutorial.creditcards.*;
67

78
public class CreditCardsMain {
89

@@ -19,6 +20,46 @@ public static void main(String[] args) {
1920
}
2021

2122
private static void createObjects(EntityManager em) {
22-
// TODO: Create object world as shown in the README.md.
23+
Customer customer = new Customer();
24+
customer.setName("Max Mustermann");
25+
26+
Address address = new Address();
27+
address.setStreet("Inndalsveien");
28+
address.setNumber(28);
29+
address.addOwner(customer);
30+
customer.addAddress(address);
31+
32+
CreditCard creditCard = new CreditCard();
33+
creditCard.setNumber(12345);
34+
creditCard.setBalance(-5000);
35+
creditCard.setCreditLimit(-10000);
36+
37+
38+
CreditCard creditCard2 = new CreditCard();
39+
creditCard2.setNumber(123);
40+
creditCard2.setBalance(1);
41+
creditCard2.setCreditLimit(2000);
42+
43+
44+
Pincode pincode = new Pincode();
45+
pincode.setPincode("123");
46+
pincode.setCount(1);
47+
48+
creditCard.setPincode(pincode);
49+
creditCard2.setPincode(pincode);
50+
51+
Bank bank = new Bank();
52+
bank.setName("Pengebank");
53+
bank.addCreditCard(creditCard);
54+
bank.addCreditCard(creditCard2);
55+
56+
creditCard.setBank(bank);
57+
creditCard2.setBank(bank);
58+
em.persist(customer);
59+
em.persist(address);
60+
em.persist(creditCard);
61+
em.persist(creditCard2);
62+
em.persist(pincode);
63+
em.persist(bank);
2364
}
2465
}

0 commit comments

Comments
 (0)