Articles of jpa

Mapear enum na JPA com valores fixos?

Eu estou procurando as maneiras diferentes de mapear um enum usando o JPA. Eu especialmente quero definir o valor inteiro de cada input enum e salvar apenas o valor inteiro. @Entity @Table(name = “AUTHORITY_”) public class Authority implements Serializable { public enum Right { READ(100), WRITE(200), EDITOR (300); private int value; Right(int value) { this.value […]

Hibernate – @ElementCollection – Estranho comportamento de exclusão / inserção

@Entity public class Person { @ElementCollection @CollectionTable(name = “PERSON_LOCATIONS”, joinColumns = @JoinColumn(name = “PERSON_ID”)) private List locations; […] } @Embeddable public class Location { […] } Dada a estrutura de classs a seguir, quando tento adicionar um novo local à lista de locais da pessoa, sempre resulta nas seguintes consultas SQL: DELETE FROM PERSON_LOCATIONS WHERE […]

Como configurar o nome do esquema padrão na configuração do JPA?

Eu achei que no arquivo de configuração do hibernate nós poderíamos configurar o parâmetro hibernate.default_schema : … myschema … Agora estou usando o JPA e quero fazer o mesmo. Caso contrário, eu tenho que adicionar um schema parâmetro a cada anotação @Table como: @Entity @Table (name = “projectcategory”, schema = “SCHEMANAME”) public class Category implements […]

Adicionando a lista da cláusula IN a uma consulta JPA

Eu construí um NamedQuery que se parece com isso: @NamedQuery(name = “EventLog.viewDatesInclude”, query = “SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND ” + “el.timeMark <= :dateTo AND " + "el.name IN (:inclList)") O que eu quero fazer é preencher o parâmetro: inclList com uma lista de itens em vez de um item. […]

Como o FetchMode funciona no Spring Data JPA

Eu tenho uma relação entre três objects de modelo no meu projeto (modelo e trechos de repository no final do post. Quando eu chamo PlaceRepository.findById ele triggers três consultas selecionadas: (“sql”) SELECT * FROM place p where id = arg SELECT * FROM user u where u.id = place.user.id SELECT * FROM city c LEFT […]

Spring Boot, Spring Data JPA com vários DataSources

Estou tentando conectar cada @Repositories a diferentes DataSource (s) com Spring Boot e Spring Data JPA. Eu usei o seguinte, http://xantorohara.blogspot.com/2013/11/spring-boot-jdbc-with-multiple.html , como referência. Aqui está o código que estou usando em uma tentativa de implementar uma solução semelhante usando o Spring Data JPA. CustomerDbConfig.java (primeira conexão de fonte de dados) @Configuration @EnableJpaRepositories( entityManagerFactoryRef = […]

Como posso obter o object de session se eu tiver o gerenciador de entidade

eu tenho private EntityManager em; public List getAll(DetachedCriteria detachedCriteria) { return detachedCriteria.getExecutableCriteria( ??? ).list(); } Como posso recuperar a session se estou usando o gerenciador de entidade ou como posso obter o resultado do meu critério separado?

Spring Boot + JPA: anotação do nome da coluna ignorada

Eu tenho um aplicativo Spring Boot com dependência “spring-boot-starter-data-jpa“. Minha class de entidade tem uma anotação de coluna com o nome da coluna. Por exemplo: @Column(name=”TestName”) private String testName; SQL gerado por este test_name criado como nome da coluna. Depois de procurar por solução, descobri que spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy resolveu o problema (o nome da coluna é […]

Como configurar o JPA para testes no Maven

Existe uma maneira de configurar um segundo arquivo persistence.xml em um projeto Maven de forma que ele seja usado para teste em vez do normal que é usado para implantação? Eu tentei colocar um persistence.xml em src / test / resources / META-INF, que é copiado em target / test-classs / META-INF, mas parece target […]

Como remover entidade com ManyToMany relacionamento em JPA (e correspondentes linhas da tabela de junit)?

Digamos que eu tenha duas entidades: Grupo e Usuário. Cada usuário pode ser membro de vários grupos e cada grupo pode ter muitos usuários. @Entity public class User { @ManyToMany Set groups; //… } @Entity public class Group { @ManyToMany(mappedBy=”groups”) Set users; //… } Agora eu quero remover um grupo (digamos que tenha muitos membros). […]