mirror of
https://github.com/Dannecron/spring-boot-demo.git
synced 2025-12-25 16:22:35 +03:00
make entities not serializable
This commit is contained in:
@@ -1,8 +1,5 @@
|
|||||||
package com.github.dannecron.demo.db.entity
|
package com.github.dannecron.demo.db.entity
|
||||||
|
|
||||||
import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization
|
|
||||||
import com.github.dannecron.demo.db.serialialization.UuidSerialization
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import org.springframework.data.annotation.Id
|
import org.springframework.data.annotation.Id
|
||||||
import org.springframework.data.relational.core.mapping.Column
|
import org.springframework.data.relational.core.mapping.Column
|
||||||
import org.springframework.data.relational.core.mapping.Table
|
import org.springframework.data.relational.core.mapping.Table
|
||||||
@@ -10,20 +7,15 @@ import java.time.OffsetDateTime
|
|||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Table("city")
|
@Table("city")
|
||||||
@Serializable
|
|
||||||
data class CityEntity(
|
data class CityEntity(
|
||||||
@Id
|
@Id
|
||||||
val id: Long?,
|
val id: Long?,
|
||||||
@Serializable(with = UuidSerialization::class)
|
|
||||||
val guid: UUID,
|
val guid: UUID,
|
||||||
val name: String,
|
val name: String,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "created_at")
|
@Column(value = "created_at")
|
||||||
val createdAt: OffsetDateTime,
|
val createdAt: OffsetDateTime,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "updated_at")
|
@Column(value = "updated_at")
|
||||||
val updatedAt: OffsetDateTime?,
|
val updatedAt: OffsetDateTime?,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "deleted_at")
|
@Column(value = "deleted_at")
|
||||||
val deletedAt: OffsetDateTime?,
|
val deletedAt: OffsetDateTime?,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.github.dannecron.demo.db.entity
|
package com.github.dannecron.demo.db.entity
|
||||||
|
|
||||||
import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization
|
|
||||||
import com.github.dannecron.demo.db.serialialization.UuidSerialization
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import org.springframework.data.annotation.Id
|
import org.springframework.data.annotation.Id
|
||||||
import org.springframework.data.relational.core.mapping.Column
|
import org.springframework.data.relational.core.mapping.Column
|
||||||
import org.springframework.data.relational.core.mapping.Table
|
import org.springframework.data.relational.core.mapping.Table
|
||||||
@@ -10,18 +7,14 @@ import java.time.OffsetDateTime
|
|||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Table("customer")
|
@Table("customer")
|
||||||
@Serializable
|
|
||||||
data class CustomerEntity(
|
data class CustomerEntity(
|
||||||
@Id
|
@Id
|
||||||
val id: Long?,
|
val id: Long?,
|
||||||
@Serializable(with = UuidSerialization::class)
|
|
||||||
val guid: UUID,
|
val guid: UUID,
|
||||||
val name: String,
|
val name: String,
|
||||||
val cityId: Long?,
|
val cityId: Long?,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "created_at")
|
@Column(value = "created_at")
|
||||||
val createdAt: OffsetDateTime,
|
val createdAt: OffsetDateTime,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "updated_at")
|
@Column(value = "updated_at")
|
||||||
val updatedAt: OffsetDateTime?,
|
val updatedAt: OffsetDateTime?,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,42 +1,23 @@
|
|||||||
package com.github.dannecron.demo.db.entity
|
package com.github.dannecron.demo.db.entity
|
||||||
|
|
||||||
import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization
|
|
||||||
import com.github.dannecron.demo.db.serialialization.UuidSerialization
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import org.springframework.data.annotation.Id
|
import org.springframework.data.annotation.Id
|
||||||
import org.springframework.data.relational.core.mapping.Column
|
import org.springframework.data.relational.core.mapping.Column
|
||||||
import org.springframework.data.relational.core.mapping.Table
|
import org.springframework.data.relational.core.mapping.Table
|
||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlin.math.pow
|
|
||||||
import kotlin.math.roundToInt
|
|
||||||
|
|
||||||
@Table(value = "product")
|
@Table(value = "product")
|
||||||
@Serializable
|
|
||||||
data class ProductEntity(
|
data class ProductEntity(
|
||||||
@Id
|
@Id
|
||||||
val id: Long?,
|
val id: Long?,
|
||||||
@Serializable(with = UuidSerialization::class)
|
|
||||||
val guid: UUID,
|
val guid: UUID,
|
||||||
val name: String,
|
val name: String,
|
||||||
val description: String?,
|
val description: String?,
|
||||||
val price: Long,
|
val price: Long,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "created_at")
|
@Column(value = "created_at")
|
||||||
val createdAt: OffsetDateTime,
|
val createdAt: OffsetDateTime,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "updated_at")
|
@Column(value = "updated_at")
|
||||||
val updatedAt: OffsetDateTime?,
|
val updatedAt: OffsetDateTime?,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "deleted_at")
|
@Column(value = "deleted_at")
|
||||||
val deletedAt: OffsetDateTime?,
|
val deletedAt: OffsetDateTime?,
|
||||||
) {
|
)
|
||||||
fun getPriceDouble(): Double = (price.toDouble() / 100).roundTo(2)
|
|
||||||
|
|
||||||
fun isDeleted(): Boolean = deletedAt != null
|
|
||||||
|
|
||||||
private fun Double.roundTo(numFractionDigits: Int): Double {
|
|
||||||
val factor = 10.0.pow(numFractionDigits.toDouble())
|
|
||||||
return (this * factor).roundToInt() / factor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.github.dannecron.demo.db.entity.order
|
package com.github.dannecron.demo.db.entity.order
|
||||||
|
|
||||||
import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization
|
|
||||||
import com.github.dannecron.demo.db.serialialization.UuidSerialization
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import org.springframework.data.annotation.Id
|
import org.springframework.data.annotation.Id
|
||||||
import org.springframework.data.relational.core.mapping.Column
|
import org.springframework.data.relational.core.mapping.Column
|
||||||
import org.springframework.data.relational.core.mapping.Table
|
import org.springframework.data.relational.core.mapping.Table
|
||||||
@@ -10,22 +7,15 @@ import java.time.OffsetDateTime
|
|||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Table(value = "order")
|
@Table(value = "order")
|
||||||
@Serializable
|
|
||||||
data class OrderEntity(
|
data class OrderEntity(
|
||||||
@Id
|
@Id
|
||||||
val id: Long?,
|
val id: Long?,
|
||||||
@Serializable(with = UuidSerialization::class)
|
|
||||||
val guid: UUID,
|
val guid: UUID,
|
||||||
val customerId: Long,
|
val customerId: Long,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "delivered_at")
|
@Column(value = "delivered_at")
|
||||||
val deliveredAt: OffsetDateTime?,
|
val deliveredAt: OffsetDateTime?,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "created_at")
|
@Column(value = "created_at")
|
||||||
val createdAt: OffsetDateTime,
|
val createdAt: OffsetDateTime,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "updated_at")
|
@Column(value = "updated_at")
|
||||||
val updatedAt: OffsetDateTime?
|
val updatedAt: OffsetDateTime?
|
||||||
) {
|
)
|
||||||
fun isDelivered(): Boolean = deliveredAt != null
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.github.dannecron.demo.db.entity.order
|
package com.github.dannecron.demo.db.entity.order
|
||||||
|
|
||||||
import com.github.dannecron.demo.db.serialialization.OffsetDateTimeSerialization
|
|
||||||
import com.github.dannecron.demo.db.serialialization.UuidSerialization
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import org.springframework.data.annotation.Id
|
import org.springframework.data.annotation.Id
|
||||||
import org.springframework.data.annotation.Transient
|
import org.springframework.data.annotation.Transient
|
||||||
import org.springframework.data.domain.Persistable
|
import org.springframework.data.domain.Persistable
|
||||||
@@ -12,19 +9,15 @@ import java.time.OffsetDateTime
|
|||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@Table(value = "order_product")
|
@Table(value = "order_product")
|
||||||
@Serializable
|
|
||||||
data class OrderProductEntity(
|
data class OrderProductEntity(
|
||||||
@Id
|
@Id
|
||||||
@Serializable(with = UuidSerialization::class)
|
|
||||||
val guid: UUID,
|
val guid: UUID,
|
||||||
@Column(value = "order_id")
|
@Column(value = "order_id")
|
||||||
val orderId: Long,
|
val orderId: Long,
|
||||||
@Column(value = "product_id")
|
@Column(value = "product_id")
|
||||||
val productId: Long,
|
val productId: Long,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "created_at")
|
@Column(value = "created_at")
|
||||||
val createdAt: OffsetDateTime,
|
val createdAt: OffsetDateTime,
|
||||||
@Serializable(with = OffsetDateTimeSerialization::class)
|
|
||||||
@Column(value = "updated_at")
|
@Column(value = "updated_at")
|
||||||
val updatedAt: OffsetDateTime?,
|
val updatedAt: OffsetDateTime?,
|
||||||
): Persistable<UUID> {
|
): Persistable<UUID> {
|
||||||
|
|||||||
Reference in New Issue
Block a user