BAEL-1159 - Simplified example (#3853)
* Squashed commit of the following: commit b31955df9638a6217a804e61faa230d8eacb293b Author: Juan Moreno <earth001@gmail.com> Date: Wed Feb 21 22:45:52 2018 -0300 Sample code for BAEL-1159 - Working with Kotlin and JPA - earth001@gmail.com * Squashed commit of the following: commit 4e6e27c914a401ee6bc599c7ffe913384137646a Author: Juan Moreno <earth001@gmail.com> Date: Wed Feb 21 23:26:20 2018 -0300 Fix package names commit b31955df9638a6217a804e61faa230d8eacb293b Author: Juan Moreno <earth001@gmail.com> Date: Wed Feb 21 22:45:52 2018 -0300 Sample code for BAEL-1159 - Working with Kotlin and JPA - earth001@gmail.com * Added sample with null fields * Removed unused dependency * BAEL-1159 - Simplified example
This commit is contained in:
parent
8cee378632
commit
86a03336f4
|
@ -19,7 +19,7 @@
|
|||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<hibernate.version>5.2.13.Final</hibernate.version>
|
||||
<hibernate.version>5.2.15.Final</hibernate.version>
|
||||
<kotlin.version>1.2.30</kotlin.version>
|
||||
<spring.version>4.3.10.RELEASE</spring.version>
|
||||
<thymeleaf.version>3.0.7.RELEASE</thymeleaf.version>
|
||||
|
|
|
@ -1,24 +1,21 @@
|
|||
package com.baeldung.jpa
|
||||
package com.baeldung.kotlin.jpa
|
||||
|
||||
import javax.persistence.CascadeType
|
||||
import javax.persistence.Column
|
||||
import javax.persistence.Entity
|
||||
import javax.persistence.FetchType
|
||||
import javax.persistence.GeneratedValue
|
||||
import javax.persistence.GenerationType
|
||||
import javax.persistence.Id
|
||||
import javax.persistence.OneToMany
|
||||
import javax.persistence.Table
|
||||
|
||||
@Entity
|
||||
@Table(name = "person")
|
||||
data class Person(
|
||||
data class Person @JvmOverloads constructor(
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
val id: Int,
|
||||
@Column(nullable = false)
|
||||
val name: String,
|
||||
@Column(nullable = true)
|
||||
val email: String?,
|
||||
@Column(nullable = true)
|
||||
@OneToMany(fetch = FetchType.LAZY, cascade = [CascadeType.ALL]) val phoneNumbers: List<PhoneNumber>?)
|
||||
val email: String? = null,
|
||||
@OneToMany(cascade = [CascadeType.ALL])
|
||||
val phoneNumbers: List<PhoneNumber>? = null)
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
package com.baeldung.jpa
|
||||
package com.baeldung.kotlin.jpa
|
||||
|
||||
import javax.persistence.Column
|
||||
import javax.persistence.Entity
|
||||
import javax.persistence.GeneratedValue
|
||||
import javax.persistence.GenerationType
|
||||
import javax.persistence.Id
|
||||
import javax.persistence.Table
|
||||
|
||||
@Entity
|
||||
@Table(name = "phone_number")
|
||||
data class PhoneNumber(
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package com.baeldung.kotlin.jpa
|
||||
|
||||
import com.baeldung.jpa.Person
|
||||
import com.baeldung.jpa.PhoneNumber
|
||||
import org.hibernate.cfg.Configuration
|
||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase
|
||||
import org.hibernate.testing.transaction.TransactionUtil.doInHibernate
|
||||
|
@ -31,12 +29,25 @@ class HibernateKotlinIntegrationTest : BaseCoreFunctionalTestCase() {
|
|||
}
|
||||
|
||||
@Test
|
||||
fun givenPerson_whenSaved_thenFound() {
|
||||
fun givenPersonWithFullData_whenSaved_thenFound() {
|
||||
doInHibernate(({ this.sessionFactory() }), { session ->
|
||||
val personToSave = Person(0, "John", "jhon@test.com", Arrays.asList(PhoneNumber(0, "202-555-0171"), PhoneNumber(0, "202-555-0102")))
|
||||
session.persist(personToSave)
|
||||
val personFound = session.find(Person::class.java, personToSave.id)
|
||||
session.refresh(personFound)
|
||||
|
||||
assertTrue(personToSave == personFound)
|
||||
})
|
||||
}
|
||||
|
||||
@Test
|
||||
fun givenPerson_whenSaved_thenFound() {
|
||||
doInHibernate(({ this.sessionFactory() }), { session ->
|
||||
val personToSave = Person(0, "John")
|
||||
session.persist(personToSave)
|
||||
val personFound = session.find(Person::class.java, personToSave.id)
|
||||
session.refresh(personFound)
|
||||
|
||||
assertTrue(personToSave == personFound)
|
||||
})
|
||||
}
|
||||
|
@ -48,6 +59,7 @@ class HibernateKotlinIntegrationTest : BaseCoreFunctionalTestCase() {
|
|||
session.persist(personToSave)
|
||||
val personFound = session.find(Person::class.java, personToSave.id)
|
||||
session.refresh(personFound)
|
||||
|
||||
assertTrue(personToSave == personFound)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue