JPA Converter


License

License

Categories

Categories

IDE Development Tools
GroupId

GroupId

com.github.leonidesfernando
ArtifactId

ArtifactId

jpa-converter
Last Version

Last Version

0.12
Release Date

Release Date

Type

Type

jar
Description

Description

JPA Converter
JPA Converter
Project URL

Project URL

http://leonidesfernando.github.io/jpa-converter/
Source Code Management

Source Code Management

https://github.com/leonidesfernando/jpa-converver.git

Download jpa-converter

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.leonidesfernando/jpa-converter/ -->
<dependency>
    <groupId>com.github.leonidesfernando</groupId>
    <artifactId>jpa-converter</artifactId>
    <version>0.12</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.leonidesfernando/jpa-converter/
implementation 'com.github.leonidesfernando:jpa-converter:0.12'
// https://jarcasting.com/artifacts/com.github.leonidesfernando/jpa-converter/
implementation ("com.github.leonidesfernando:jpa-converter:0.12")
'com.github.leonidesfernando:jpa-converter:jar:0.12'
<dependency org="com.github.leonidesfernando" name="jpa-converter" rev="0.12">
  <artifact name="jpa-converter" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.leonidesfernando', module='jpa-converter', version='0.12')
)
libraryDependencies += "com.github.leonidesfernando" % "jpa-converter" % "0.12"
[com.github.leonidesfernando/jpa-converter "0.12"]

Dependencies

provided (1)

Group / Artifact Type Version
org.hibernate.javax.persistence : hibernate-jpa-2.1-api jar 1.0.0.Final

test (1)

Group / Artifact Type Version
org.testng : testng jar 6.8.8

Project Modules

There are no modules declared in this project.

Status?branch=master

jpa-converter

É uma biblioteca para ajudar os desenvolvedores Java que fazem uso da JPA, persistir os principais tipos do pacote java.time do Java8. A versão 0.12 suporta os tipos:

  java.time.LocalDate
  java.time.LocalDateTime
  java.time.YearMonth
  java.time.Year

Usar o jpa-converter no seu projeto é muito simples, bastam 3 passos:

1. Configurar o repositório e a dependência Maven

Repositório: https://oss.sonatype.org/content/groups/public

No pom.xml defina o repositório e a dependência

		 <repository>
			 <id>sonatype</id>
			 <name>Sonatype</name>
			 <url>https://oss.sonatype.org/content/groups/public</url>
		 </repository>
		<dependency>
			<groupId>com.github.leonidesfernando</groupId>
			<artifactId>jpa-converter</artifactId>
			<version>0.12</version>
		</dependency>

2. No persistence.xml adicione os conversores que fará uso

	<persistence-unit name="minhaUnidadeDePersistencia" >
		<class>com.github.leonidesfernando.jpa.converter.java.time.LocalDatePersistenceConverter</class>
		<class>com.github.leonidesfernando.jpa.converter.java.time.LocalDateTimePersistenceConverter</class>
		<class>com.github.leonidesfernando.jpa.converter.java.time.YearMonthPersistenceConverter</class>
		<class>com.github.leonidesfernando.jpa.converter.java.time.YearPersistenceConverter</class>
	</persistence-unit>

3. Mapeie os tipos suportados pelo jpa-converter nas suas entidades

O mapeamento fica totalmente transparente, não é necessário realizar nenhuma outra configuração.

	@NotNull(message="{data.cadastro.notnull}")
	@Column(name="data_cadastro")
	private LocalDateTime dataCadastro;
	
	@NotNull(message="{data.hora.ultima.alteracao.notnull}")
	@Column(name="data_hora_ultima_alteracao")
	private LocalDateTime dataHoraUltimaAlteracao;
	
	@Column(name="data_nascimento")
	private LocalDate dataNascimento;
	
	@NotNull(message="{ultimo.mes.ano.sincronizado.notnull}")
	@Column(name="ultimo_mes_ano_sincronizado")
	private YearMonth ultimoMesAnoSincronizado;

4. Changelog

Versão 0.12 otimizando persistência YearMonth de String para Integer.

Guia de migração as versões anteriores para a 0.12:

Sql's para o Postgresql

Na(s) tabela(s) que possui o tipo Year, criar uma coluna que passará armazenar o tipo YearMonth persistido:

alter table tabela_com_mes_ano add colum mesAnoInteger integer;

Em seguida dispara um update na(s) tabelas envolvidas:

update tabela_com_mes_ano set mesAnoInteger = 
(select cast ((substring(mesAnoString FROM '[0-9]*')) as int) * 100 + cast(substring(mesAnoString FROM '..$') as int) from tabela_com_mes_ano);

Remover a(s) coluna antiga das tabelas envolvidas:

alter table tabela_com_mes_ano drop column mesAnoString;

Quer contribuir com o projeto?

Você pode ajudar, codificando, enviando sugestões, documentando ou reportando bugs. Basta entrar no grupo [JPA-Conveter Group] (https://groups.google.com/forum/#!forum/jpa-converter)

Licença

O jpa-converter está sob a licença LGPl 2.1.Veja a licença inclusa no projeto para mais detalhes ou acesse: http://www.gnu.org/licenses/lgpl-2.1.html

Site

http://leonidesfernando.github.io/jpa-converter/

Versions

Version
0.12
0.11
0.5
0.4