Как связать класс сущности и вставить его в jdbi? - PullRequest
0 голосов
/ 03 мая 2020

Я хочу запустить Insert для таблицы в базе данных postgresql, используя jdbi. Я хочу запустить оператор вставки без указания имени столбца, просто назначив класс, сгенерированный Entity.

Класс ниже представляет собой автоматически сгенерированный тестируемый класс (с использованием Kotlin).

'''
@Entity
    @Table(name = "testtable", schema = "public", catalog = "testdb")
    open class testtableEntity{
        @get:Id
        @get:Column(name = "path", nullable = false)
        var path: String? = null

        @get:Basic
        @get:Column(name = "regist_date", nullable = true)
        var registDate: java.sql.Timestamp? = null

    }
'''

Можно выполнить «вставку», если у вас есть следующие интерфейсы.

'''
interface testtableDao{
    @SqlUpdate("insert into testtable (path,regist_date) values" +
            " (:path, :registDate)" )
    fun insert(@BindBean testtableData: testtableEntity): Int?

} 

'''

Но я хочу выполнить инструкцию вставки, просто поместив класс testableEntity в аргумент. В соответствии с тем, что я написал выше, я должен писать каждый раз, когда увеличивается имя столбца. Указание имени столбца и фактического класса - это хлопот; Я хотел бы, чтобы способ не указывал это, просто вызывая tessttableEntity. Я помню, что смог сделать это с EntityFrameWork C#. Тем не менее, я не могу найти способ сделать это с JDBI. Например, есть ли способ автоматически вставить следующие вещи, используя имя класса Entity в качестве аргумента?

'''
interface testtableDao{
    @SqlUpdate("insert into testtable" )
    fun insert(@BindAutoInsert testtableData: testtableEntity): Int?

} 

'''
...