Database Function Generated Column
10/27/25Less than 1 minute
easy-query supports generating column values using database functions. For example, implementing a custom nextId() function to generate the corresponding id column during insertion, rather than using regular object property columns.
Custom Function Creates Database Auto-Generated Column
Database object, must set generatedKey to true, indicating it is auto-generated. If generatedSQLColumnGenerator is not added, it will be treated as an auto-increment column and not included in the insert statement, generated by the database
@Data
@Table("custom_increment")
public class CustomIncrement {
@Column(primaryKey = true,generatedKey = true, generatedSQLColumnGenerator = MyDatabaseIncrementSQLColumnGenerator.class)
private String id;
private String name;
private String address;
}Custom insert column function
public class MyDatabaseIncrementSQLColumnGenerator implements GeneratedKeySQLColumnGenerator {
@Override
public void configure(TableAvailable table, ColumnMetadata columnMetadata, SQLPropertyConverter sqlPropertyConverter, QueryRuntimeContext runtimeContext) {
sqlPropertyConverter.sqlNativeSegment("mysqlNextId()");
}
}Suppose I define a MySQL function mysqlNextId to automatically generate primary key id implemented by MySQL database function
CustomIncrement customIncrement=new CustomIncrement();
//customIncrement.setId();//Whether set or not, mysqlNextId will be used as the insert function
customIncrement.setName("name");
customIncrement.setAddress("address");
easyQuery.insertable(customIncrement)
.executeRows();
INSERT INTO `custom_increment` (`id`,`name`,`address`) VALUES (mysqlNextId(),?,?)Use Case Scenarios
PostgreSQL geo data insertion or custom database function generated columns, only called when inserting
Contributors
只是我