diff --git a/spring-exceptions/.settings/org.eclipse.jdt.core.prefs b/spring-exceptions/.settings/org.eclipse.jdt.core.prefs index 723e5b12451a..df8135651462 100644 --- a/spring-exceptions/.settings/org.eclipse.jdt.core.prefs +++ b/spring-exceptions/.settings/org.eclipse.jdt.core.prefs @@ -42,7 +42,7 @@ org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/dao/FooDao.java b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/dao/FooDao.java new file mode 100644 index 000000000000..2755be8445c9 --- /dev/null +++ b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/dao/FooDao.java @@ -0,0 +1,23 @@ +package org.baeldung.ex.mappingexception.cause1.persistence.dao; + +import org.baeldung.ex.mappingexception.cause1.persistence.model.Foo; +import org.baeldung.persistence.common.AbstractHibernateDao; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class FooDao extends AbstractHibernateDao implements IFooDao { + + @Autowired + private SessionFactory sessionFactory; + + public FooDao() { + super(); + + setClazz(Foo.class); + } + + // API + +} diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/dao/IFooDao.java b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..8519858eca6d --- /dev/null +++ b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/dao/IFooDao.java @@ -0,0 +1,8 @@ +package org.baeldung.ex.mappingexception.cause1.persistence.dao; + +import org.baeldung.ex.mappingexception.cause1.persistence.model.Foo; +import org.baeldung.persistence.common.IOperations; + +public interface IFooDao extends IOperations { + // +} diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/model/Foo.java b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/model/Foo.java new file mode 100644 index 000000000000..dd094076027e --- /dev/null +++ b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/model/Foo.java @@ -0,0 +1,81 @@ +package org.baeldung.ex.mappingexception.cause1.persistence.model; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +public class Foo implements Serializable { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(nullable = false) + private String name; + + public Foo() { + super(); + } + + public Foo(final String name) { + super(); + + this.name = name; + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + // + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + +} diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/service/FooService.java b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/service/FooService.java new file mode 100644 index 000000000000..7054b721cfec --- /dev/null +++ b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/service/FooService.java @@ -0,0 +1,27 @@ +package org.baeldung.ex.mappingexception.cause1.persistence.service; + +import org.baeldung.ex.mappingexception.cause1.persistence.dao.IFooDao; +import org.baeldung.ex.mappingexception.cause1.persistence.model.Foo; +import org.baeldung.persistence.common.AbstractService; +import org.baeldung.persistence.common.IOperations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class FooService extends AbstractService implements IFooService { + + @Autowired + private IFooDao dao; + + public FooService() { + super(); + } + + // API + + @Override + protected IOperations getDao() { + return dao; + } + +} diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/service/IFooService.java b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/service/IFooService.java new file mode 100644 index 000000000000..5d7015cbc2b7 --- /dev/null +++ b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/cause1/persistence/service/IFooService.java @@ -0,0 +1,8 @@ +package org.baeldung.ex.mappingexception.cause1.persistence.service; + +import org.baeldung.ex.mappingexception.cause1.persistence.model.Foo; +import org.baeldung.persistence.common.IOperations; + +public interface IFooService extends IOperations { + // +} diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/spring/PersistenceConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/spring/Cause1PersistenceConfig.java similarity index 93% rename from spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/spring/PersistenceConfig.java rename to spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/spring/Cause1PersistenceConfig.java index 0d6fa738f401..98d2941db569 100644 --- a/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/spring/PersistenceConfig.java +++ b/spring-exceptions/src/main/java/org/baeldung/ex/mappingexception/spring/Cause1PersistenceConfig.java @@ -21,13 +21,13 @@ @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) -@ComponentScan({ "org.baeldung.persistence" }) -public class PersistenceConfig { +@ComponentScan({ "org.baeldung.ex.mappingexception.cause1.persistence" }) +public class Cause1PersistenceConfig { @Autowired private Environment env; - public PersistenceConfig() { + public Cause1PersistenceConfig() { super(); } @@ -35,7 +35,7 @@ public PersistenceConfig() { public LocalSessionFactoryBean sessionFactory() { final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.persistence.model2" }); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.ex.mappingexception.cause1.persistence.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/MappingExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionIntegrationTest.java similarity index 56% rename from spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/MappingExceptionIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionIntegrationTest.java index 47f519e211b9..46f551c65259 100644 --- a/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/MappingExceptionIntegrationTest.java +++ b/spring-exceptions/src/test/java/org/baeldung/ex/mappingexception/Cause1MappingExceptionIntegrationTest.java @@ -2,9 +2,9 @@ import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; -import org.baeldung.ex.mappingexception.spring.PersistenceConfig; -import org.baeldung.persistence.model.Foo; -import org.baeldung.persistence.service.IFooService; +import org.baeldung.ex.mappingexception.cause1.persistence.model.Foo; +import org.baeldung.ex.mappingexception.cause1.persistence.service.IFooService; +import org.baeldung.ex.mappingexception.spring.Cause1PersistenceConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -13,17 +13,17 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) -public class MappingExceptionIntegrationTest { +@ContextConfiguration(classes = { Cause1PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause1MappingExceptionIntegrationTest { @Autowired - private IFooService fooService; + private IFooService fooApi; // tests @Test public final void givenEntityIsPersisted_thenException() { - fooService.create(new Foo(randomAlphabetic(6))); + fooApi.create(new Foo(randomAlphabetic(6))); } }