forced fix

This commit is contained in:
kochetkov 2024-09-19 14:58:24 +03:00
parent 2ff21af101
commit 71c6422dcb

View file

@ -17,11 +17,9 @@ import org.jooq.DSLContext;
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.exception.DataAccessException;
import org.jooq.impl.DSL;
import org.jooq.impl.DefaultDataType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import service.button.sql.ExecuteSqlButtonService;
@ -32,7 +30,7 @@ import ru.cg.webbpm.modules.database.api.provider.DslProvider;
import ru.cg.webbpm.modules.standard_annotations.editor.TextAreaEditor;
import ru.cg.webbpm.modules.standard_annotations.validation.NotNull;
public class ReadOnlySqlButtonServiceImpl implements ExecuteSqlButtonService, InitializingBean {
public class ReadOnlySqlButtonServiceImpl implements ExecuteSqlButtonService {
private static final Logger logger = LoggerFactory.getLogger(ReadOnlySqlButtonServiceImpl.class);
@Autowired
private DslProvider dslProvider;
@ -44,10 +42,12 @@ public class ReadOnlySqlButtonServiceImpl implements ExecuteSqlButtonService, In
public String sql;
public String jndiName;
@Override
public void afterPropertiesSet() {
dsl = this.dslProvider.getDslContext(jndiName);
public void initDsl() {
if (dsl != null) {
return;
}
dsl = this.dslProvider.getDslContext(jndiName);
if (dsl == null) {
throw new RuntimeException("Couldn't get dslContext with datasourceJndiName = " + jndiName);
}
@ -55,6 +55,7 @@ public class ReadOnlySqlButtonServiceImpl implements ExecuteSqlButtonService, In
@Transactional
public List<?> executeSql(Object[] params) {
initDsl();
SQLParameters parameters = new SQLParameters();
parameters.setSql(sql);
parameters.setSqlParameters(params);
@ -66,8 +67,7 @@ public class ReadOnlySqlButtonServiceImpl implements ExecuteSqlButtonService, In
};
}
@Transactional
public List<?> executeSelect(SQLParameters parameters) {
private List<?> executeSelect(SQLParameters parameters) {
Result<Record> result = executeSelectRaw(parameters);
if (result.size() > 1) {
@ -153,8 +153,9 @@ public class ReadOnlySqlButtonServiceImpl implements ExecuteSqlButtonService, In
if (SQLHandlerUtils.isArrayExceptBytesArray(parameter)) {
Object[] castParameter = (Object[]) parameter;
org.jooq.SQLDialect dialect = dsl.configuration().dialect();
String typeName = DefaultDataType.getDataType(dialect,castParameter.getClass().getComponentType())
.getTypeName();
String typeName = DefaultDataType.getDataType(dialect,
castParameter.getClass().getComponentType()
).getTypeName();
Array arrayOf = connection.createArrayOf(typeName, castParameter);
statement.setArray(i + 1, arrayOf);
}