Skip to content

Commit 264fc41

Browse files
committed
Adjust JPA classes
1 parent 97d02ee commit 264fc41

File tree

8 files changed

+97
-81
lines changed

8 files changed

+97
-81
lines changed

hibernate-mappings/src/main/java/by/andd3dfx/model/shop/ItemWithLengthAndDiameter.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

hibernate-mappings/src/main/java/by/andd3dfx/model/shop/ItemWithThreeSizes.java

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package by.andd3dfx.model.shop;
2+
3+
import lombok.Data;
4+
5+
import javax.persistence.Column;
6+
import javax.persistence.DiscriminatorValue;
7+
import javax.persistence.Entity;
8+
9+
@Data
10+
@Entity
11+
@DiscriminatorValue("1-size")
12+
public class OneSizeItem extends ZeroSizeItem {
13+
14+
@Column
15+
private Double length;
16+
17+
@Override
18+
public String toString() {
19+
return "OneSizeItem{" +
20+
super.toString() +
21+
", length=" + length +
22+
'}';
23+
}
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package by.andd3dfx.model.shop;
2+
3+
import javax.persistence.Column;
4+
import javax.persistence.DiscriminatorValue;
5+
import javax.persistence.Entity;
6+
import lombok.Data;
7+
8+
@Data
9+
@Entity
10+
@DiscriminatorValue("3-size")
11+
public class ThreeSizeItem extends TwoSizeItem {
12+
13+
@Column
14+
private Double height;
15+
16+
@Override
17+
public String toString() {
18+
return "ThreeSizeItem{" +
19+
super.toString() +
20+
", height=" + height +
21+
'}';
22+
}
23+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package by.andd3dfx.model.shop;
2+
3+
import javax.persistence.Column;
4+
import javax.persistence.DiscriminatorValue;
5+
import javax.persistence.Entity;
6+
import lombok.Data;
7+
8+
@Data
9+
@Entity
10+
@DiscriminatorValue("2-size")
11+
public class TwoSizeItem extends OneSizeItem {
12+
13+
@Column
14+
private Double width;
15+
16+
@Override
17+
public String toString() {
18+
return "TwoSizeItem{" +
19+
super.toString() +
20+
", width=" + width +
21+
'}';
22+
}
23+
}

hibernate-mappings/src/main/java/by/andd3dfx/model/shop/ItemWithoutSize.java renamed to hibernate-mappings/src/main/java/by/andd3dfx/model/shop/ZeroSizeItem.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
@Data
88
@Entity
9-
@DiscriminatorValue("ITEM")
10-
public class ItemWithoutSize extends BaseItem {
9+
@DiscriminatorValue("0-size")
10+
public class ZeroSizeItem extends BaseItem {
11+
1112
}

hibernate-mappings/src/main/resources/hibernate.cfg.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@
1818
<mapping class="by.andd3dfx.model.library.Address"/>
1919
<mapping class="by.andd3dfx.model.library.Publisher"/>
2020

21-
<mapping class="by.andd3dfx.model.shop.ItemWithLengthAndDiameter"/>
22-
<mapping class="by.andd3dfx.model.shop.ItemWithoutSize"/>
23-
<mapping class="by.andd3dfx.model.shop.ItemWithThreeSizes"/>
21+
<mapping class="by.andd3dfx.model.shop.ZeroSizeItem"/>
22+
<mapping class="by.andd3dfx.model.shop.OneSizeItem"/>
23+
<mapping class="by.andd3dfx.model.shop.TwoSizeItem"/>
24+
<mapping class="by.andd3dfx.model.shop.ThreeSizeItem"/>
2425
</session-factory>
2526
</hibernate-configuration>

hibernate-mappings/src/test/java/by/andd3dfx/HibernateMainIT.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,38 @@
33
import static org.hamcrest.CoreMatchers.is;
44
import static org.hamcrest.MatcherAssert.assertThat;
55

6+
import java.util.List;
7+
import javax.persistence.EntityManager;
8+
import javax.persistence.Query;
9+
610
import by.andd3dfx.model.library.Address;
711
import by.andd3dfx.model.library.Author;
812
import by.andd3dfx.model.library.Book;
913
import by.andd3dfx.model.library.Publisher;
10-
import java.util.List;
11-
import javax.persistence.EntityManager;
12-
import javax.persistence.Query;
14+
import lombok.SneakyThrows;
1315
import org.hibernate.Session;
14-
import org.hibernate.SessionFactory;
1516
import org.hibernate.cfg.Configuration;
1617
import org.junit.Test;
1718

1819
public class HibernateMainIT {
1920

21+
@SneakyThrows
2022
@Test
2123
public void checkRecordsExistence() {
22-
SessionFactory sf = new Configuration().configure().buildSessionFactory();
23-
Session session = sf.openSession();
24-
EntityManager entityManager = session.getEntityManagerFactory().createEntityManager();
25-
26-
getFromDbAndCheck(session, Book.class, 4);
27-
getFromDbAndCheck(session, Address.class, 2);
28-
getFromDbAndCheck(session, Author.class, 3);
29-
getFromDbAndCheck(session, Publisher.class, 2);
30-
31-
getFromDbAndCheck(entityManager, "ItemWithoutSize", 1);
32-
getFromDbAndCheck(entityManager, "ItemWithLengthAndDiameter", 2);
33-
getFromDbAndCheck(entityManager, "ItemWithThreeSizes", 1);
34-
35-
session.close();
24+
try (var sessionFactory = new Configuration().configure().buildSessionFactory()) {
25+
try (var session = sessionFactory.openSession()) {
26+
getFromDbAndCheck(session, Book.class, 4);
27+
getFromDbAndCheck(session, Address.class, 2);
28+
getFromDbAndCheck(session, Author.class, 3);
29+
getFromDbAndCheck(session, Publisher.class, 2);
30+
31+
EntityManager entityManager = session.getEntityManagerFactory().createEntityManager();
32+
getFromDbAndCheck(entityManager, "ZeroSizeItem", 1);
33+
getFromDbAndCheck(entityManager, "OneSizeItem", 1);
34+
getFromDbAndCheck(entityManager, "TwoSizeItem", 2);
35+
getFromDbAndCheck(entityManager, "ThreeSizeItem", 1);
36+
}
37+
}
3638
}
3739

3840
private void getFromDbAndCheck(Session session, Class clazz, int expectedItemsCount) {

0 commit comments

Comments
 (0)