//класс клиента
@Entity
@Table(name = "Users")
public class User {
@Id
// @Column(name="login")
@GeneratedValue(strategy= GenerationType.AUTO)
private UUID iduser;
@Column(unique=true)
private String login;
private String phone;
//ссылка на фото
private String photo;
public User(){}
...
//класс для паролев
@Entity
@Table(name = "UsersSecure")
public class UserSecure {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private UUID idusersecure;
@Column(unique=true)
private String login;
@NotNull
private String password;
private String usedtoken;
public UserSecure(){}
...
и их репозитории:
@Repository
@Qualifier("jdbcUserandadvertisement")
public interface UserRepository extends CrudRepository {
//выдать всех клиентов
List findAll();
...}
public interface UserSecureRepository extends CrudRepository {
UserSecure save(UserSecure userSecure);
...}
С JPA такую штуку не реализовывал, но предположу что нужно сконфигурировать два EntityManager с двумя разными dataSource через класс конфигурации и к каждому репозиторию подключать свой EntityManager
Главный вопрос как подключить Entity откуда, метода setDataSource() там нету , таже самая таблица находиться в даух разных базах, что конкретно нужно написать в анотации @Qualifier ? Имя dataSource бина ?
В общем виде должно выглядеть как-то так. Для другой базы - меняйте postgres на любое удобное вам имя.
В пакете jpa можете хранить как entity, так и репозитории
Я не по это спрашиваю , то понятно дальше как вы квери создаете ? , как мне Entity а с ним и jpa Repository interface настроить на две или больше базы? когда Я говорю repository.save() откуда он знает в какой базе хранить ? когда есть resultSet то ему
даеться connection и все просто
sergioKon, entity и repository кладутся в пакеты, указанные в конфигурации. При создании конфигурации ентити и репозитории из указанных пакетов связываются с конфигурацией, которая их сканит в этом пакете. Если же вы хотите одну и ту же entity использовать в двух БД, то тут не знаю. Самый простой вариант - ctrl-c, ctrl-v и хранить копии в двух разных пакетах.
Или можно попытаться создать еще 1 bean entityManager - mysqlEntityManager, например, который будет копией postgresEntityManager. И осуществлять операции с БД через конкретные entityManager используя entity из одного пакета. entity manager guide