Расширьте существующую сущность Hibernate как сущность комнаты Android с помощью аннотации сериализации Kotlin.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Расширьте существующую сущность Hibernate как сущность комнаты Android с помощью аннотации сериализации Kotlin.

Сообщение Anonymous »

Мне нужно использовать существующую структуру базы данных, которая имеет классы Entity, совместимые с JPA (Jakarta Persistence API), для использования в Spring Boot через Hibernate ORM. Я хочу скопировать эту структуру базы данных как базу данных Android Room, а также использовать плагин/библиотеку сериализации Kotlin. Исходная библиотека базы данных не может использовать какие-либо зависимости Android. Проблема, с которой я столкнулся, — это аннотации PrimaryKey в базе данных Android Room. Я не могу найти способ обозначить поля как первичные ключи исходной сущности. Ниже приведен пример...
CustomerEntity.kt — класс JPA Entity, совместимый с Spring Hibernate

Код: Выделить всё

@Serializable
@Entity
@Table(
name = CustomerEntity.Constants.TABLE_NAME,
indexes = [Index(name = "IX_Customer_CustomerName", columnList = "CustomerName")]
)
open class CustomerEntity(
@Id
@Column(name = Constants.COLUMN_ID_NAME, nullable = false, length = 15)
open var id: String = "",

@Column(name = Constants.COLUMN_CUSTOMERNAME_NAME, length = 40)
var customerName: String = "",
) {
object Constants {
const val TABLE_NAME: String = "Customer"
const val COLUMN_ID_NAME: String = "CustomerID"
const val COLUMN_CUSTOMERNAME_NAME: String = "CustomerName"
}
}
CustomerAndroid.kt — попытка создать подкласс класса JPA Entity

Код: Выделить всё

@Serializable
@Entity(tableName = CustomerSchema.TABLE_NAME)
class CustomerAndroid() : CustomerEntity() {
constructor(
customerID: String,
customerName: String = ""
) : this() {
this.id = customerID
this.customerName = customerName
}

@PrimaryKey
override var id: String = ""
}
Попытка использовать переопределение приводит к проблеме с kotlinx.serialization:

Код: Выделить всё

Serializable class has duplicate serial name of property 'id', either in the class itself or its supertypes
Я пытаюсь найти способ прикрепить аннотацию к полю первичного ключа в Android Room, но у меня возникает много головных болей, связанных с запуском этих фреймворков и библиотек. хорошо друг с другом.

Подробнее здесь: https://stackoverflow.com/questions/791 ... rializatio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»