Oliveira.caio
Boa tarde.
Na annotation @Table tem uma propriedade chamada schema.
Joaozava
Olá Caio…
Na verdade, é isso que estou fazendo atualmente.
O problema é que a partir de agora, vou precisar alternar entre duas schemas de forma dinâmica.
Usuário 1 = Schema 1 e Usuário 2 = Schema 2 (por exemplo).
Só vou saber qual usuário(e qual schema usar) no momento do login!
Obrigado!
Oliveira.caio
Agora deu uma embananada.
Você esta dizendo que algumas tabelas vão ficar em um schema e algumas em outro schema.
shema-> dados1 -> tabela-> tabela1
shema-> dados1 -> tabela-> tabela2
shema-> dados2 -> tabela-> tabela3
shema-> dados2 -> tabela-> tabela4
E que cada schema tem um usuário e senha diferente?
Se sim nunca vi nada para fazer uma configuração assim, a senha que você tem é para o banco.
Esse usuário deveria te dar acesso aos dois esquemas.
Att,
Joaozava
hehe… deixa eu explicar melhor.
Quem vai acessar o sistema são duas empresas.
Cada empresa vai ter um schema diferente no banco, com a mesma estrutura de tabelas.
Vou saber qual schema acessar de acordo com qual empresa o usuário selecionar no momento do login.
Melhorou? :?
Obrigado!
bobboyms
Joaozava:
hehe… deixa eu explicar melhor.
Quem vai acessar o sistema são duas empresas.
Cada empresa vai ter um schema diferente no banco, com a mesma estrutura de tabelas.
Vou saber qual schema acessar de acordo com qual empresa o usuário selecionar no momento do login.
Melhorou? :?
Obrigado!
Eu tive essa mesma dificuldade, e acabei escrevendo um componente java, para fazer isso de forma bem simples.
da uma olhada :
http://code.google.com/p/jpa-component/wiki/Doc_PT_Br?ts=[telefone removido]&updated=Doc_PT_Br
Joaozava
bobboyms:
Joaozava:
hehe… deixa eu explicar melhor.
Quem vai acessar o sistema são duas empresas.
Cada empresa vai ter um schema diferente no banco, com a mesma estrutura de tabelas.
Vou saber qual schema acessar de acordo com qual empresa o usuário selecionar no momento do login.
Melhorou? :?
Obrigado!
Eu tive essa mesma dificuldade, e acabei escrevendo um componente java, para fazer isso de forma bem simples.
da uma olhada :
http://code.google.com/p/jpa-component/wiki/Doc_PT_Br?ts=[telefone removido]&updated=Doc_PT_Br
Olá, obrigado pela dica!
Mas tenho duas dúvidas.
- Como ficaria a integração do seu componente com Spring?
- Como alterar o Schema utilizado de forma dinâmica, ex.: http://meusite.com?schema=1 ou http://meusite.com?schema=2
Obrigado!
bobboyms
Joaozava:
bobboyms:
Joaozava:
hehe… deixa eu explicar melhor.
Quem vai acessar o sistema são duas empresas.
Cada empresa vai ter um schema diferente no banco, com a mesma estrutura de tabelas.
Vou saber qual schema acessar de acordo com qual empresa o usuário selecionar no momento do login.
Melhorou? :?
Obrigado!
Eu tive essa mesma dificuldade, e acabei escrevendo um componente java, para fazer isso de forma bem simples.
da uma olhada :
http://code.google.com/p/jpa-component/wiki/Doc_PT_Br?ts=[telefone removido]&updated=Doc_PT_Br
Olá, obrigado pela dica!
Mas tenho duas dúvidas.
- Como ficaria a integração do seu componente com Spring?
- Como alterar o Schema utilizado de forma dinâmica, ex.: http://meusite.com?schema=1 ou http://meusite.com?schema=2
Obrigado!
Bom dia! Sobre integração com o sping não tenho ideia, porque numca trabalhei com ele!
agora o schma de forma dinamica você vai ter que pegar a url do usuário e tratar ela.
segue o link http://www.exampledepot.com/egs/javax.servlet/GetReqUrl.html
depois que voce obter o schema através da url você faz assim
Configuration configuration = ConfigPersistence.getInstanceConfiguration();
//só adicionar o novo do schema no construtor
EntityManagerFactory factory = configuration.createEntityManagerFactory("schema_test");
EntityManager em = factory.createEntityManager();
tiago.javaman
Joaozava:
Pessoal,
Tenho um sistema com Spring, JPA, etc …
Surgiu a necessidade de utilizar vários schemas de banco, de acordo com o usuário que irá logar deverá ser acessado um schema de banco diferente.
Alguém sabe como posso fazer?
Atualmente tenho meu pesistence.xml e configuro o EntityManager e DataSource no Spring assim:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="pu" />
<property name="dataSource" ref="pooledDS"></property>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
</bean>
<bean id="defDataSourceTarget" destroy-method="close"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/bd" />
<property name="username" value="user" />
<property name="password" value="pass" />
</bean>
Obrigado!
Recuperando o tópico…
Joaozava, vc conseguiu resolver esse tópico? Me deparei com a mesma situação.
Estou usando Spring Data + JPA.
Joaozava
tiago.javaman,
não consegui, acabei não precisando mais dessa solução.
mas caso descubra uma solução seria de grande ajuda se compartilhar 
tiago.javaman
Pois é, vamos a luta.
Achei alguma coisa na net, mas usando spring security, e não estou usando esse módulo do spring. 