请告诉我公式。 A 列包含交易列表(100 件),另一列 B 包含交易列表(20 件),两列中的交易完全匹配。
A 必须折叠,并且 A 列中只有 A 和 B 之间的匹配行
请告诉我公式。 A 列包含交易列表(100 件),另一列 B 包含交易列表(20 件),两列中的交易完全匹配。
A 必须折叠,并且 A 列中只有 A 和 B 之间的匹配行
有一个任务需要重写一个带有嵌套条件的循环,以退出流上的循环:
for(int i; i < 500; i++){
// обработка коллекции
if(obj == 100){
break;
}
}
我写了这个:
public static List<DateBucket> bucketize() {
return LongStream.iterate(1, i -> i + 1).limit(500)
.mapToObj(i -> {
// логика;
})
.toList();
}
但是,我不明白如何将循环中的嵌套条件添加到流中。
或者如果你这样写,那么流就会无限地运行:
Stream.generate(() -> // логика)
.takeWhile(r -> r.getI() == 100)
.toList();
有一个表,SECURITY_EXCHANGE
其中包含列security_id
(int)、is_here
(boolean)、market_id
(int)
对价值观security_id
和market_id
独特性。
我需要将一系列值更新is_here
为null。如果我提出这样的请求,那么它就会起作用。
UPDATE SECURITY_EXCHANGE
SET is_here = null
WHERE security_id in (1,2,3,4,5);
但我需要WHERE
考虑关联列中的值security_id
+ market_id
。
也就是说,像这样:
UPDATE SECURITY_EXCHANGE
SET is_here = null
WHERE security_id AND market_id in ...;
如何实施?
有一个包含 security_id 字段的摊销表和一个包含 security_id 和 source_id 字段的安全表。
您需要从摊销表上传,将上传中的 security_id 列的值替换为安全表中的 source_id。
此类请求按摊销方式返回 source_id。安全_id。
SELECT source_id FROM security WHERE security_id = (SELECT TOP (1) security_id FROM amortization);
我需要在查询结果中使用这个source_id放置security_id
SELECT TOP (1) * FROM amortization;
如何才能做到这一点?
并根据要求从安全表中选择
SELECT * FROM sf_dm.sf_dm.[security] WHERE security_id = (SELECT TOP (1) security_id FROM sf_dm.sf_dm.amortization);
在最终选择中,security_id (56916) 应替换为source_id(6462)。
我有一个对象的集合。我只需在输出处留下一个字段具有唯一值的对象集合。
我写了一个解决方案,但也许有更优雅的东西,没有地图。
这是 Load 对象的集合。我最终需要得到一个具有独特 S 值的集合。“1”、“2”、“3”。保留哪些重复值并不重要。
List<Load> file = new ArrayList<>(
Arrays.asList(new Load(1, "1"), new Load(2, "2"), new Load(3, "3"), new Load(4, "3"), new Load(4, "3"), new Load(6, "3")));
public void filter() {
Set<Load> fileSet = new HashSet<>(file);
Map<String, Load> keySet = new HashMap<>();
file.forEach(e -> keySet.put(e.getS(), e));
System.out.println(keySet.values());
}
}
class Load {
int i;
String s;
}
body
表中有一列operation
:
create table operation (
id number(32, 2) not null,
product_name varchar2(50) not null,
body varchar2(4000),
constraint pk_operation primary key (id) using index,
constraint chk_body check (body is json)
)
它存储完全不同对象的 JSON。
这些对象进入一个队列,其主体包含一个String body
带有 JSON 的字段。在写入数据库之前,我检查传入body
的 JSON 是否正确:
public static boolean isJSONValid(String jsonInString) {
try {
final ObjectMapper mapper = new ObjectMapper();
mapper.readTree(jsonInString);
return true;
} catch (IOException e) {
log.debug("Wrong json data " + e.getMessage());
return false;
}
}
告诉我,这种方法在多大程度上是正确的,也许还有更正确的解决方案?
我使用 com.fasterxml.jackson.datatype
当用一个对象序列化一个集合时,我得到
return Collections.singletonList(new Offer());
"offers": [
{}
]
我需要回来
"offers": []
无法得出这样的结论。如果你只是返回一个空列表,那么记录就会消失。
Liquibase 结果创建了一个表:
databaseChangeLog:
- changeSet:
validCheckSum: ANY
id: 1
author: some
changes:
- createTable:
tableName: REG_STATUS
columns:
- column:
name: id
type: BIGINT
autoIncrement: true
constraints:
primaryKey: true
nullable: false
- column:
name: reg_id
type: BIGINT
- column:
name: created_on
type: Timestamp
- column:
name: display_offset
type: Timestamp
- column:
name: status
type: varchar(50)
然后通过控制台将 Insert 传递给它jdbcTemplate.update
,或者只是通过控制台的请求 - 结果是相同的。
ORA-01400: 无法插入 NULL
编码:
private static final String SAVE_NEW_REG_STATUS = "insert into REG_STATUS (REG_ID, CREATED_ON, DISPLAY_OFFSET, STATUS) values (:reg_id, :created_on, :display_offset, :status)";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("reg_id", 100);
paramMap.put("created_on", Timestamp.valueOf("2021-05-31 13:13:11.6469816"));
paramMap.put("display_offset", Timestamp.valueOf("2021-05-31 13:13:11.6469816"));
paramMap.put("status", "NEW");
int status = jdbcTemplate.update(SAVE_NEW_REG_STATUS, paramMap);
或者只是一个查询:
INSERT INTO REG_STATUS
(REG_ID, CREATED_ON, DISPLAY_OFFSET, STATUS)
VALUES
(5000, '2021-05-31 13:13:11.6469816', '2021-05-31 13:13:11.6469816', 'NEW');
回答:
[23000][1400] ORA-01400: невозможно вставить NULL в ("PS_REPORT"."REG_STATUS"."ID")
是否需要专门规定身份证?它也必须是自生的。
收藏品来了List<Myclass> mylist
;
MyClass 包含各种字段,包括 int id。
我只需要在 mylist 中保留那些具有相同 id 字段的 Myclass 实例。
那些。例如,一个收藏有 10 个副本。它的 ID:0,0,2,3,4,5,6,7,9,9。
应该有一个集合,其中包含 4 个 Myclass 实例,id 为 0、0、9、9
我试着这样做:
mylist.removeAll(mylist.stream()
.collect(collectingAndThen(toCollection(() -> new TreeSet<>(comparingInt(Myclass ::getId))),
ArrayList::new)));
但没有通过。
java.lang.ClassCastException:
class [Ljava.lang.Object; cannot be cast to class
[Lru.yota.finservices.rs.db.model.MonthAvgServiceData;
([Ljava.lang.Object; is in module java.base of loader 'bootstrap';
[Lru.yota.finservices.rs.db.model.MonthAvgServiceData; is in unnamed module of loader 'app')
错误文本。
存储过程调用方法。
SimpleJdbcCall call = new SimpleJdbcCall(template)
.withCatalogName(CATALOG_NAME)
.withFunctionName("getMonthAVGServiceRegistryData")
.declareParameters(monthAvgServiceData());
SqlParameterSource source = new MapSqlParameterSource()
.addValue("p_date", date, Types.DATE)
.addValue("p_Service_id", serviceId, Types.BIGINT);
List<MonthAvgServiceData> monthAvgServiceData = Arrays.asList(call.executeFunction(MonthAvgServiceData[].class, source)); // тут ошибка.
方法 .declareParameters(monthAvgServiceData());
private SqlOutParameter monthAvgServiceData() {
return new SqlOutParameter("return",
OracleTypes.ARRAY,
"T_MONTH_AVG_SERVICE_DATA_LIST",
new SqlReturnStructArray<>(RecursiveBeanPropertyStructArrayMapper.newInstance(MonthAvgServiceData.class))
);
}
从存储过程本身,数据作为对象返回。截屏。
但是当您尝试转换为数组时,它会因错误而崩溃。
调用通过SimpleJdbcCall
.
我这样描述 Hikari:
datasource:
type: com.zaxxer.hikari.HikariDataSource
hikari:
minimum-idle: 4
maximum-pool-size: 20
pool-name: "rsPool"
auto-commit: true
connection-timeout: 20000
allow-pool-suspension: false
driver-class-name: oracle.jdbc.OracleDriver
jdbcUrl: ${datasource.url}
username: ${datasource.username}
password: ${datasource.password}
设置类:
@Configuration
@EnableTransactionManagement
public class JdbcConfiguration {
@Bean(name = "defaultHikariConfig")
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
@Bean(name = "defaultDataSource")
public DataSource defaultDataSource(
@Qualifier("defaultHikariConfig") HikariConfig hikariConfig) {
return new HikariDataSource(hikariConfig);
}
@Bean(name = "defaultJdbcTemplate")
public JdbcTemplate jdbcTemplate(
@Qualifier("defaultDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "defaultTransactionManager")
public PlatformTransactionManager transactionManager(
@Qualifier("defaultDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "defaultNamedParameterJdbcTemplate")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(
@Qualifier("defaultJdbcTemplate") JdbcTemplate jdbcTemplate) {
return new NamedParameterJdbcTemplate(jdbcTemplate);
}
@Bean
public RegistryDao registryDao(
@Qualifier("defaultJdbcTemplate") JdbcTemplate jdbcTemplate,
@Qualifier("defaultNamedParameterJdbcTemplate")
NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
return new RegistryDao(jdbcTemplate, namedParameterJdbcTemplate);
}
}
可能是什么问题呢?
版本:
'hikariCP' : '2.4.7',
'oraSpringData' : '1.2.1.RELEASE',
'ojdbc' : '12.1.0.2'
'springBoot' : '1.5.8.RELEASE'
它来自具有应进一步处理为json
的字段的服务。"time": "2020-05-28T12:34:56"
OffsetDateTime
我尝试了这些方法,但错误正在下降:
String date = "2020-05-28T12:34:56";
OffsetDateTime offsetDateTime = OffsetDateTime.parse(date, DateTimeFormatter.ISO_DATE_TIME);
OffsetDateTime offsetDateTime = OffsetDateTime.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"));
请告诉我。
有一个 post 方法putMessage(Some object)
将数据作为输入,对其进行处理并向用户返回“文件上传成功”消息。
在方法处理完数据之后,在向用户返回“文件上传成功”之前,我仍然需要运行一个单独的方法void2()
来完成大约 2-3 小时的工作。
如何在putMessage(Some object)
内部调用此方法,使其执行单独开始,客户端不等待消息 2-3 小时。听说可以通过 Observer 来实现。有这个工具Spring
吗?
那些。
String putMessage(Some object){
// 1. обработка данных object
// 2. вызов void2() * - вынести в отдельный поток
// 3. return "загрузка файла прошла успешно";
}
我有一个测试 ldap 服务器和 Spring Boot 设置一起上升
spring.ldap.embedded.base-dn=dc=javausecase,dc=com
spring.ldap.embedded.ldif=classpath:schema.ldif
spring.ldap.embedded.port=8389
spring.ldap.embedded.url=ldap://localhost:8389/
spring.ldap.embedded.validation.enabled=false
ldif的内容
dn: dc=javausecase,dc=com
objectclass: top
objectclass: domain
objectclass: extensibleObject
dc: javausecase
dn: ou=groups,dc=javausecase,dc=com
objectclass: top
objectclass: organizationalUnit
ou: groups
dn: ou=subgroups,ou=groups,dc=javausecase,dc=com
objectclass: top
objectclass: organizationalUnit
ou: subgroups
dn: ou=people,dc=javausecase,dc=com
objectclass: top
objectclass: organizationalUnit
ou: people
dn: cn=one,ou=groups,dc=javausecase,dc=com
cn: one
objectClass: top
objectClass: posixGroup
gidNumber: 1100
description: UNIX systems administrators
memberUID: 111,222
dn: cn=two,ou=groups,dc=javausecase,dc=com
cn: two
objectClass: top
objectClass: posixGroup
gidNumber: 801
description: Network Service Switch Proxy
memberUID: 222
dn: uid=111,ou=people,dc=javausecase,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: 111
sn: 111
uid: 111
gidNumber: 111
userPassword: {SHA}fDYHuOYbzxlE6ehQOmYPIfS28/E=
dn: uid=222,ou=people,dc=javausecase,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: 222
sn: 222
uid: 222
gidNumber: 222
userPassword: {SHA}fDYHuOYbzxlE6ehQOmYPIfS28/E=
我想测试是否可以将用户分组。
如何检查用户 111 是否在第一组中,而用户 222 是否在组 111 和 222 中?
我写了这个查询
List<Attribute> attributes = ldapTemplate.search(
query().where("objectclass").is("posixGroup"),
new AttributesMapper<Attribute>() {
public Attribute mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn");
}
});
它返回 2 个属性 1 和 2,但是如何从这些属性中进一步获取 memberUID 的内容
我不太明白。
我打电话
ResponseEntity<Message> response = restTemplate.exchange(urlRemoveCard, HttpMethod.POST, requestBody, Message.class);
问题是我不太明白如何处理来自 urlRemoveCard 的响应。urlRemoveCard 是外部服务的 url。大摇大摆地说,如果一切正常,那么代码 200 和消息“.....”就会出现。
但通过各种其他选项,提供了不同状态的错误。
例如,如果发生 HttpClientErrorException,则可能会返回错误
代码 1800009 消息“…………”
我需要从任何响应中提取数据并将其保存在包含代码和消息字段的 Response.class 中。
问题是,当发生异常时,我只是捕获它,代码和消息都写在该行中。我需要从这一行中提取数据,这很不方便。
是否有可能以某种方式拦截响应并从中获取代码和消息?
swager 片段。
消息是一个简单的对象
@Data
public class Message {
private String code;
private String message;
}
Spring Boot 项目,maven 程序集。一路上有一个文件
C:\Users\username\IdeaProjects\mail\src\main\resources\my_image.jpg
在阅读时final BufferedImage imageFile = ImageIO.read(new File("my_image.jpg"));
错误 javax.imageio.IIOException:无法读取输入文件
为什么会这样?
测试 oauth2 时,我发送 post 方法
数据在数据库中,一切都必须正确完成。还列出了基本身份验证。用户实体由类表示
@Entity
@Table(name = "users", schema = "public")
@Getter
@Setter
@NoArgsConstructor
public class User implements Serializable {
public User(User user) {
this.username = user.getUsername();
this.password = user.getPassword();
this.email = user.getEmail();
this.enabled = user.isEnabled();
this.accountNonExpired = user.isAccountNonExpired();
this.credentialsNonExpired = user.isCredentialsNonExpired();
this.accountNonLocked = user.isAccountNonLocked();
this.roles = user.getRoles();
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String username;
@Column
private String password;
@Column
private String email;
@Column
private boolean enabled;
@Column
private boolean accountNonExpired;
@Column
private boolean credentialsNonExpired;
@Column
private boolean accountNonLocked;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "role_user", joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
inverseJoinColumns = {
@JoinColumn(name = "role_id", referencedColumnName = "id")})
private List<Role> roles;
}
为什么我不明白这个错误
ERROR: column user0_.account_non_expired does not exist
Подсказка: Perhaps you meant to reference the column "user0_.accountnonexpired".
account_non_expired 来自哪里?
在数据库表用户