[BAEL-2048] Spring Data JPA multiple databases article
This commit is contained in:
parent
8aa7dc5aab
commit
55e09af479
@ -1,10 +1,6 @@
|
|||||||
package org.baeldung.persistence.multiple.model.user;
|
package org.baeldung.persistence.multiple.model.user;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.*;
|
||||||
import javax.persistence.GeneratedValue;
|
|
||||||
import javax.persistence.GenerationType;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(schema = "spring_jpa_user")
|
@Table(schema = "spring_jpa_user")
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
package org.baeldung.persistence.multiple.model.user;
|
package org.baeldung.persistence.multiple.model.user;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.util.List;
|
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
|
@Entity
|
||||||
@Table(schema = "spring_jpa_user")
|
@Table(schema = "spring_jpa_user")
|
||||||
public class User {
|
public class User {
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +1,5 @@
|
|||||||
package org.baeldung.persistence.service;
|
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.ProductConfig;
|
||||||
import org.baeldung.config.UserConfig;
|
import org.baeldung.config.UserConfig;
|
||||||
import org.baeldung.persistence.multiple.dao.product.ProductRepository;
|
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.EnableTransactionManagement;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ContextConfiguration(classes = { UserConfig.class, ProductConfig.class })
|
@ContextConfiguration(classes = { UserConfig.class, ProductConfig.class })
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
@ -50,12 +49,12 @@ public class JpaMultipleDBIntegrationTest {
|
|||||||
user.setAge(20);
|
user.setAge(20);
|
||||||
Possession p = new Possession("sample");
|
Possession p = new Possession("sample");
|
||||||
p = possessionRepository.save(p);
|
p = possessionRepository.save(p);
|
||||||
user.setPossessionList(Arrays.asList(p));
|
user.setPossessionList(Collections.singletonList(p));
|
||||||
user = userRepository.save(user);
|
user = userRepository.save(user);
|
||||||
final User result = userRepository.findOne(user.getId());
|
final Optional<User> result = userRepository.findById(user.getId());
|
||||||
assertNotNull(result);
|
assertTrue(result.isPresent());
|
||||||
System.out.println(result.getPossessionList());
|
System.out.println(result.get().getPossessionList());
|
||||||
assertTrue(result.getPossessionList().size() == 1);
|
assertEquals(1, result.get().getPossessionList().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -66,7 +65,7 @@ public class JpaMultipleDBIntegrationTest {
|
|||||||
user1.setEmail("john@test.com");
|
user1.setEmail("john@test.com");
|
||||||
user1.setAge(20);
|
user1.setAge(20);
|
||||||
user1 = userRepository.save(user1);
|
user1 = userRepository.save(user1);
|
||||||
assertNotNull(userRepository.findOne(user1.getId()));
|
assertTrue(userRepository.findById(user1.getId()).isPresent());
|
||||||
|
|
||||||
User user2 = new User();
|
User user2 = new User();
|
||||||
user2.setName("Tom");
|
user2.setName("Tom");
|
||||||
@ -92,7 +91,7 @@ public class JpaMultipleDBIntegrationTest {
|
|||||||
product.setPrice(20);
|
product.setPrice(20);
|
||||||
product = productRepository.save(product);
|
product = productRepository.save(product);
|
||||||
|
|
||||||
assertNotNull(productRepository.findOne(product.getId()));
|
assertTrue(productRepository.findById(product.getId()).isPresent());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user