我有一个要求,我需要将一些员工数据插入 db2 数据库,下面是代码:
@Log4j2
@Service
@Transactional
public class EmployeeServiceImpl extends EmployeeService{
@Autowired
private EmployeeDataRepository employeeDataRepository;
@Override
@Transactional(rollbackOn = {DataAccessException.class})
public void insertEmployeeData(List<Employee> employeeList){
try{
employeeDataRepository.insertEmployeeData(employeeList);
}catch(DataAccessException ex){
log.error("Exception whie inserting data in db {}",ex.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
@Log4j2
@Repository
public class EmployeeDataRepositoryImpl implements EmployeeDataRepository{
@Autowired
private DataSource dataSource;
@Value("${db.schema}")
private String schema;
@Override
public void insertEmployeeData(List<Employee> employeeList){
this.jdbcInsert = new SimpleJdbcInsert(dataSource).withTableName("Employee");
for(Employee emp : employeeList){
Map<String,Object> parameters = new HashMap<String,Object>();
parameters.put("name", emp.name);
parameters.put("age", emp.age);
parameters.put("dateOfJoining", emp.dateOfJoining);
parameters.put("address", emp.address);
parameters.put("salary", emp.salary);
jdbcInsert.execute(parameters); …Run Code Online (Sandbox Code Playgroud) 您好,我正在使用 jhipster 生成的代码,其依赖项为 3.0.7。我正在尝试使用下面的代码对数据库密码进行自定义加密和解密。我调试时解密成功,但是在本机服务器会话中,我可以看到自动提交设置为 true,这是错误的原因。默认自动提交粘贴了下面的错误。看起来 hikari 自动提交没有设置或者什么的。这个和mysql没有关系。com.mysql.cj.protocol.a 中有一个名为 NativeServerSession 的类,它将自动提交设置为 true,从而导致错误。我尝试在 yml 文件中将自动提交设置为 true 。但我得到了同样的错误。请帮忙。如果我删除加密并删除数据库配置类,它就会起作用,并且 NativeServerSession 自动提交也设置为 true。
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
@EnableJpaRepositories("com.my.repository")
@EnableTransactionManagement
@EnableJpaAuditing
public class DatabaseConfiguration extends DriverManagerDataSource implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
this.decryptPass();
}
@Bean
public void decryptPass() {
String retrievedPassword = this.getPassword();
..decrpt code goes here
this.setPassword(decryptedDBPassword);
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序.yml
datasource:
#driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
default-auto-commit: false
auto-commit: false
url: jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&relaxAutoCommit=true
username: dbusername
password: encryptedpassword
hikari:
poolName: Hikari
auto-commit: false
default-auto-commit: …Run Code Online (Sandbox Code Playgroud) 所以我的问题如下:
我有一个表想要应用过滤器。该过滤器应调用一个查询,该查询根据给定的信息查找报告。
这就是我的查询的样子:
@Query("SELECT r FROM Report r WHERE r.importanceLevel = COALESCE(importance,'%')" +
"AND r.source = COALESCE(source,'%')" +
"AND r.resolvedStatus = COALESCE(resolvedStatus,'%')" +
"AND r.header LIKE + '%' COALESCE(query,'%') + '%'")
List<Report> getReportsByAppliedFilter(@Param("importance") int importance, @Param("source") String source,
@Param("resolvedStatus") int resolvedStatus, @Param("query") String query);
Run Code Online (Sandbox Code Playgroud)
问题是:IntelliJ 不喜欢以下内容:
LIKE + '%' COALESCE(query,'%') + '%'
Run Code Online (Sandbox Code Playgroud)
错误:预期,得到+
您知道如何解决这个问题吗?
我想要一个解决方案,允许管理 json 对象、调用 SOAP 服务以及通过一组 lambda 服务上的 Spring 数据访问数据库。但在网上我读到 lambda 函数应该非常简单。也许 Spring Cloud 是解决方案?
问候
我有两个类Drug和medicalDrawer.
我搜索了一种方法来获取所有medicalDrawer未使用的内容Drug
@Entity
public class Drug {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long drugId;
@OneToOne
private MedicalDrawer medicalDrawer;
}
@Entity
public class MedicalDrawer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long medicalDrawerId;
private String name;
}
Run Code Online (Sandbox Code Playgroud) spring-data ×5
spring ×3
java ×2
spring-boot ×2
aws-lambda ×1
jhipster ×1
jpa ×1
mssql-jdbc ×1
mysql ×1
spring-cloud ×1