Я хочу запустить 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?
}
'''