首先,为您可能犯的语法错误道歉。我的英文不是很好。
我正在创建一个表构造函数来创建动态表。我的问题是 EntityManager 为空,我不知道为什么。
我在读到您可以创建一个带有entityManagerFactory的 entityManager并传递我的 application.properties 中已有的参数。
或者我可以注入 PersistenceContext 但是当我尝试执行一个 sql 语句时,EntityManager 为空。
我该如何解决?
编辑:我做了你所说的一切,接下来展示:
LOGGER.DEBUG:
CREATE TABLE countries( table_id SERIAL, tsunami int8, mag float8, felt numeric, id varchar(255), time bigint, primary key (table_id));
ERROR:
java.lang.NullPointerException: null
at com.project.maps.util.TableGeoJsonGenerator.executeSQL...
抱歉,我编辑并添加编辑后的代码以对所有代码和版本进行排序:这是我的代码:
@Service
public class TableGeoJsonGenerator {
private static final Logger LOGGER = LogManager.getLogger(SchemeService.class);
@Autowired
private EntityManager em;
public TableGeoJsonGenerator() {
super();
}
public void initTable(String name, List<String> columns, List<String> typeColumns, ArrayList<Object> rows) {
createTableWithColumns(name, columns, typeColumns);
addRowsInTable(rows);
}
private void createTableWithColumns(String name, List<String> columns, List<String> typeColumns) {
String SQL = "CREATE TABLE " + name + "( table_id int8 NOT NULL AUTO_INCREMENT, " + generateSqlColumns(columns, typeColumns) +" primary key (table_id));";
LOGGER.debug(SQL);
executeSQL(SQL);
}
private void addRowsInTable(ArrayList<Object> rows) {
}
public String generateSqlColumns(List<String> columns, List<String> typeColumns) {
String DINAMIC_COLUMNS = "";
for (int i=0; i<columns.size(); i++) {
DINAMIC_COLUMNS += columns.get(i).toString() + " " + getPostgresqlValue(typeColumns.get(i).toString()) + ", ";
}
return DINAMIC_COLUMNS;
}
慕妹3146593
PIPIONE
相关分类