Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 18 additions & 3 deletions persistence-modules/hibernate-annotations/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@
</dependency>
<dependency>
<groupId>io.hypersistence</groupId>
<artifactId>hypersistence-utils-hibernate-60</artifactId>
<version>${hypersistance-utils-hibernate-60.version}</version>
<artifactId>hypersistence-utils-hibernate-70</artifactId>
<version>${hypersistence-utils-hibernate-70.version}</version>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
Expand All @@ -93,14 +93,29 @@
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit-jupiter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<properties>
<!-- Spring -->
<org.springframework.version>6.0.6</org.springframework.version>
<org.springframework.data.version>3.0.3</org.springframework.data.version>
<maven.deploy.skip>true</maven.deploy.skip>
<tomcat-dbcp.version>9.0.0.M26</tomcat-dbcp.version>
<hypersistance-utils-hibernate-60.version>3.3.1</hypersistance-utils-hibernate-60.version>
<hypersistence-utils-hibernate-70.version>3.12.0</hypersistence-utils-hibernate-70.version>
<liquibase-core.version>4.24.0</liquibase-core.version>
<hibernate.version>7.1.0.Final</hibernate.version>
<maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
<junit-jupiter.version>5.10.0</junit-jupiter.version>
</properties>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,15 @@ public Object getPropertyValue(Address component, int property) throws Hibernate
case 4:
return component.getZipCode();
default:
throw new IllegalArgumentException(property +
" is an invalid property index for class type " +
component.getClass().getName());
throw new IllegalArgumentException(property + " is an invalid property index for class type " + component.getClass()
.getName());
}
}

@Override
public Address instantiate(ValueAccess values, SessionFactoryImplementor sessionFactory) {
return new Address(values.getValue(0, String.class), values.getValue(1,String.class), values.getValue(2, String.class),
values.getValue(3, String.class), values.getValue(4,Integer.class));
public Address instantiate(ValueAccess values) {
return new Address(values.getValue(0, String.class), values.getValue(1, String.class), values.getValue(2, String.class),
values.getValue(3, String.class), values.getValue(4, Integer.class));
}

@Override
Expand All @@ -49,11 +48,13 @@ public Class<Address> returnedClass() {

@Override
public boolean equals(Address x, Address y) {
if (x == y)
if (x == y) {
return true;
}

if (Objects.isNull(x) || Objects.isNull(y))
if (Objects.isNull(x) || Objects.isNull(y)) {
return false;
}

return x.equals(y);
}
Expand All @@ -65,8 +66,9 @@ public int hashCode(Address x) {

@Override
public Address deepCopy(Address value) {
if (Objects.isNull(value))
if (Objects.isNull(value)) {
return null;
}

Address newEmpAdd = new Address();

Expand Down Expand Up @@ -100,12 +102,12 @@ public Address replace(Address detached, Address managed, Object owner) {
}

@Override
public boolean isInstance(Object object, SessionFactoryImplementor sessionFactory) {
return CompositeUserType.super.isInstance(object, sessionFactory);
public boolean isInstance(Object object) {
return CompositeUserType.super.isInstance(object);
}

@Override
public boolean isSameClass(Object object, SessionFactoryImplementor sessionFactory) {
return CompositeUserType.super.isSameClass(object, sessionFactory);
public boolean isSameClass(Object object) {
return CompositeUserType.super.isSameClass(object);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.baeldung.hibernate.customtypes;

import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.metamodel.spi.ValueAccess;
import org.hibernate.usertype.CompositeUserType;

Expand All @@ -20,13 +19,14 @@ public Object getPropertyValue(PhoneNumber component, int property) throws Hiber
case 2:
return component.getNumber();
default:
throw new IllegalArgumentException(property + " is an invalid property index for class type " + component.getClass().getName());
throw new IllegalArgumentException(property + " is an invalid property index for class type " + component.getClass()
.getName());
}
}

@Override
public PhoneNumber instantiate(ValueAccess values, SessionFactoryImplementor sessionFactory) {
return new PhoneNumber(values.getValue(0, Integer.class), values.getValue(1, Integer.class), values.getValue(2,Integer.class));
public PhoneNumber instantiate(ValueAccess values) {
return new PhoneNumber(values.getValue(0, Integer.class), values.getValue(1, Integer.class), values.getValue(2, Integer.class));
}

@Override
Expand All @@ -41,10 +41,12 @@ public Class returnedClass() {

@Override
public boolean equals(PhoneNumber x, PhoneNumber y) {
if (x == y)
if (x == y) {
return true;
if (Objects.isNull(x) || Objects.isNull(y))
}
if (Objects.isNull(x) || Objects.isNull(y)) {
return false;
}

return x.equals(y);
}
Expand All @@ -56,8 +58,9 @@ public int hashCode(PhoneNumber x) {

@Override
public PhoneNumber deepCopy(PhoneNumber value) {
if (Objects.isNull(value))
if (Objects.isNull(value)) {
return null;
}

return new PhoneNumber(value.getCountryCode(), value.getCityCode(), value.getNumber());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ public static void main(String[] args) {
Transaction tx = session.beginTransaction();

// Save the Model object
session.save(cart);
session.save(cart2);
session.save(item1);
session.save(item2);
session.persist(cart);
session.persist(cart2);
session.persist(item1);
session.persist(item2);

// Commit transaction
tx.commit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ public static void main(String[] args) {
tx = session.beginTransaction();

// Save the Model object
session.save(cart);
session.save(cart2);
session.save(item1);
session.save(item2);
session.persist(cart);
session.persist(cart2);
session.persist(item1);
session.persist(item2);

// Commit transaction
tx.commit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ public static void main(String[] args) {
Transaction tx = session.beginTransaction();

// Save the Model object
session.save(cart);
session.save(item1);
session.save(item2);
session.persist(cart);
session.persist(item1);
session.persist(item2);

// Commit transaction
tx.commit();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.baeldung;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.context.support.AnnotationConfigContextLoader;

import com.baeldung.hibernate.immutable.PersistenceConfig;

@RunWith(SpringJUnit4ClassRunner.class)
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class)
public class SpringContextTest {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ void whenCreatingEntity_ThenCreatedOnIsSet() {
session.beginTransaction();
Book book = new Book();

session.save(book);
session.persist(book);
session.getTransaction()
.commit();
session.close();
Expand All @@ -64,7 +64,7 @@ void whenCreatingEntity_ThenCreatedOnAndLastUpdatedOnAreBothSet() {
session.beginTransaction();
Book book = new Book();

session.save(book);
session.persist(book);
session.getTransaction()
.commit();
session.close();
Expand All @@ -79,7 +79,7 @@ void whenCreatingEntity_ThenCreatedOnAndLastUpdatedOnAreEqual() {
session.beginTransaction();
Book book = new Book();

session.save(book);
session.persist(book);
session.getTransaction().commit();
session.close();

Expand All @@ -96,14 +96,14 @@ void whenUpdatingEntity_ThenLastUpdatedOnIsUpdatedAndCreatedOnStaysTheSame() {
session.setHibernateFlushMode(MANUAL);
session.beginTransaction();
Book book = new Book();
session.save(book);
session.persist(book);
session.flush();
Instant createdOnAfterCreation = book.getCreatedOn();
Instant lastUpdatedOnAfterCreation = book.getLastUpdatedOn();

String newName = "newName";
book.setTitle(newName);
session.save(book);
session.persist(book);
session.flush();
session.getTransaction().commit();
session.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Environment;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test;
import org.junit.jupiter.api.Test;

import jakarta.persistence.TypedQuery;
import java.time.LocalDate;
Expand All @@ -15,9 +15,9 @@
import java.util.Map;

import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

public class HibernateCustomTypesIntegrationTest {

Expand Down Expand Up @@ -45,7 +45,7 @@ public void givenEmployee_whenSavedWithCustomTypes_thenEntityIsSaved() {
e.setSalary(empSalary);

doInHibernate(this::sessionFactory, session -> {
session.save(e);
session.persist(e);
boolean contains = session.contains(e);
assertTrue(contains);
});
Expand Down Expand Up @@ -75,7 +75,7 @@ public void givenEmployee_whenCustomTypeInQuery_thenReturnEntity() {
e.setSalary(empSalary);

doInHibernate(this::sessionFactory, session -> {
session.save(e);
session.persist(e);
session.flush();
session.refresh(e);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,51 +1,52 @@
package com.baeldung.hibernate.oneToMany.main;

import static org.junit.jupiter.api.Assertions.assertNotNull;

import com.baeldung.hibernate.oneToMany.config.HibernateAnnotationUtil;
import com.baeldung.hibernate.oneToMany.model.Cart;
import com.baeldung.hibernate.oneToMany.model.Item;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.HashSet;
import java.util.Set;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;

public class HibernateOneToManyAnnotationMainIntegrationTest {

private static SessionFactory sessionFactory;

private Session session;

@BeforeClass
@BeforeAll
public static void beforeTests() {
sessionFactory = HibernateAnnotationUtil.getSessionFactory();
}

@Before
@BeforeEach
public void setUp() {
session = sessionFactory.openSession();
session.beginTransaction();
}

@Test
public void givenSession_checkIfDatabaseIsEmpty() {
Cart cart = session.get(Cart.class, 1L);
assertNull(cart);
Cart cart = session.find(Cart.class, 1L);
Assertions.assertNull(cart);
}

@Test
public void givenSession_checkIfDatabaseIsPopulated_afterCommit() {
Cart cart = new Cart();
Set<Item> cartItems = cart.getItems();

assertNull(cartItems);
Assertions.assertNull(cartItems);

Item item1 = new Item();
item1.setCart(cart);
Expand All @@ -66,18 +67,18 @@ public void givenSession_checkIfDatabaseIsPopulated_afterCommit() {

session = sessionFactory.openSession();
session.beginTransaction();
cart = session.get(Cart.class, 1L);
cart = session.find(Cart.class, 1L);

assertNotNull(cart);
}

@After
@AfterEach
public void tearDown() {
session.getTransaction().commit();
session.close();
}

@AfterClass
@AfterAll
public static void afterTests() {
sessionFactory.close();
}
Expand Down