Skip to content

Commit

Permalink
chore: 新增数据时主键名依赖元数据配置而不写死的"id"
Browse files Browse the repository at this point in the history
  • Loading branch information
aruis committed Aug 2, 2024
1 parent 4ef509a commit 0050866
Show file tree
Hide file tree
Showing 10 changed files with 23 additions and 15 deletions.
3 changes: 3 additions & 0 deletions my-boot/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,8 @@ dependencies {

testImplementation 'io.quarkus:quarkus-junit5'
testImplementation 'io.rest-assured:rest-assured'

testImplementation "io.quarkus:quarkus-agroal"
testImplementation "io.quarkus:quarkus-jdbc-postgresql"
testImplementation libs.testcontainers.postgresql
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public interface ICreateAbility extends IDatabaseAbility, IMetadataAbility {
@POST
@Path("/create")
default String create(Map body) {
return getDatabase().insert(getInsertSql(body), body);
return getDatabase().insert(getInsertSql(body), body, getPK());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@

public interface ICreateAbilityUni extends IDatabaseUniAbility, IMetadataAbility {

//TODO 与ICreateAbility 函数内容过于雷同,考虑合并
@POST
@Path("/create")
default Uni<String> create(Map body) {
return getDatabase().insert(getInsertSql(body), body);
return getDatabase().insert(getInsertSql(body), body, getPK());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceUnit;
import jakarta.persistence.Query;
import jakarta.persistence.Tuple;
import jakarta.transaction.Transactional;
Expand All @@ -17,12 +18,13 @@
public class DataAccessStd implements IDatabaseAccessStd {

@Inject
@PersistenceUnit(name = "standard")
EntityManager entityManager;

//TODO 要审查params的内容类型,比如字符串的日期要做转化,才能入库
@Override
public String insert(String sql, Map<String, Object> params) {
return row(sql, params).get("id").toString();
public String insert(String sql, Map<String, Object> params, String pk) {
return row(sql, params).get(pk).toString();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ public class DataAccessUni implements IDatabaseAccessUni {
Mutiny.SessionFactory sessionFactory;

@Override
public Uni<String> insert(String sql, Map<String, Object> params) {
return this.row(sql, params).map(row -> row.get("id").toString());
public Uni<String> insert(String sql, Map<String, Object> params, String pk) {
return this.row(sql, params).map(row -> row.get(pk).toString());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

public interface IDatabaseAccess {

Object insert(String sql, Map<String, Object> params);
Object insert(String sql, Map<String, Object> params, String pk);

Object row(String sql, Map<String, Object> params);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

public interface IDatabaseAccessStd extends IDatabaseAccess {

String insert(String sql, Map<String, Object> params);
String insert(String sql, Map<String, Object> params, String pk);

Map<String, Object> row(String sql, Map<String, Object> params);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

public interface IDatabaseAccessUni extends IDatabaseAccess {

Uni<String> insert(String sql, Map<String, Object> params);
Uni<String> insert(String sql, Map<String, Object> params, String pk);

Uni<Map<String, Object>> row(String sql, Map<String, Object> params);

Expand Down
8 changes: 5 additions & 3 deletions my-platform/build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
plugins {
id 'java'
id 'java-library'
id 'checkstyle'
id 'configure-jandex'
}


dependencies {
implementation project(':my-core')
// implementation project(':my-database-std')
implementation project(':my-database-uni')
api project(':my-core')
//TODO 测试同时依赖的情况
// api project(':my-database-std')
api project(':my-database-uni')
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import jakarta.inject.Inject;
import jakarta.ws.rs.Path;
import net.ximatai.muyun.ability.curd.uni.ICURDUniAbility;
import net.ximatai.muyun.ability.curd.uni.ICreateAbilityUni;
import net.ximatai.muyun.database.IDatabaseAccess;

@Path("/module")
public class ModuleController implements ICURDUniAbility {
public class ModuleController implements ICreateAbilityUni {

@Inject
IDatabaseAccess databaseAccess;
Expand Down

0 comments on commit 0050866

Please sign in to comment.