[BAEL-2048] Spring Data JPA multiple databases article

This commit is contained in:
dupirefr 2018-09-01 10:22:34 +02:00
parent 8aa7dc5aab
commit 55e09af479
12 changed files with 181 additions and 26 deletions

View File

@ -1,10 +1,6 @@
package org.baeldung.persistence.multiple.model.user;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
@Entity
@Table(schema = "spring_jpa_user")

View File

@ -1,15 +1,8 @@
package org.baeldung.persistence.multiple.model.user;
import javax.persistence.*;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(schema = "spring_jpa_user")
public class User {

View File

@ -0,0 +1,86 @@
package org.baeldung.persistence.multiple.model.user;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(schema = "spring_jpa_user")
public class Possession {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
public Possession() {
super();
}
public Possession(final String name) {
super();
this.name = name;
}
public long getId() {
return id;
}
public void setId(final int 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) + (int) (id ^ (id >>> 32));
result = (prime * result) + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Possession other = (Possession) obj;
if (id != other.id) {
return false;
}
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("Possesion [id=").append(id).append(", name=").append(name).append("]");
return builder.toString();
}
}

View File

@ -0,0 +1,81 @@
package org.baeldung.persistence.multiple.model.user;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(schema = "spring_jpa_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
@Column(unique = true, nullable = false)
private String email;
private int age;
@OneToMany
List<Possession> possessionList;
public User() {
super();
}
public int getId() {
return id;
}
public void setId(final int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(final String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(final int age) {
this.age = age;
}
public List<Possession> getPossessionList() {
return possessionList;
}
public void setPossessionList(List<Possession> possessionList) {
this.possessionList = possessionList;
}
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
builder.append("User [name=").append(name).append(", id=").append(id).append("]");
return builder.toString();
}
}

View File

@ -1,11 +1,5 @@
package org.baeldung.persistence.service;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Arrays;
import org.baeldung.config.ProductConfig;
import org.baeldung.config.UserConfig;
import org.baeldung.persistence.multiple.dao.product.ProductRepository;
@ -24,6 +18,11 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.Optional;
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { UserConfig.class, ProductConfig.class })
@EnableTransactionManagement
@ -50,12 +49,12 @@ public class JpaMultipleDBIntegrationTest {
user.setAge(20);
Possession p = new Possession("sample");
p = possessionRepository.save(p);
user.setPossessionList(Arrays.asList(p));
user.setPossessionList(Collections.singletonList(p));
user = userRepository.save(user);
final User result = userRepository.findOne(user.getId());
assertNotNull(result);
System.out.println(result.getPossessionList());
assertTrue(result.getPossessionList().size() == 1);
final Optional<User> result = userRepository.findById(user.getId());
assertTrue(result.isPresent());
System.out.println(result.get().getPossessionList());
assertEquals(1, result.get().getPossessionList().size());
}
@Test
@ -66,7 +65,7 @@ public class JpaMultipleDBIntegrationTest {
user1.setEmail("john@test.com");
user1.setAge(20);
user1 = userRepository.save(user1);
assertNotNull(userRepository.findOne(user1.getId()));
assertTrue(userRepository.findById(user1.getId()).isPresent());
User user2 = new User();
user2.setName("Tom");
@ -92,7 +91,7 @@ public class JpaMultipleDBIntegrationTest {
product.setPrice(20);
product = productRepository.save(product);
assertNotNull(productRepository.findOne(product.getId()));
assertTrue(productRepository.findById(product.getId()).isPresent());
}
}