小编Ram*_*Ram的帖子

列出<Object>到Map <String,Map <String,List <Object >>>

我有List<Person>哪里Person如下是.

class Person {

    String personId;
    LocalDate date;
    String type;

    // getters & setters

}
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为List<Person>Map<String, Map<LocalDate,List<Person>>>地方外映射的关键是personId和内部地图的关键是date,我无法弄清楚如何实现这一目标.到目前为止,尝试过如下所示的内容 也可以使用Java 8解决方案.

Map<String,Map<LocalDate,List<Person>>> outerMap = new HashMap<>();
Map<LocalDate,List<Person>> innerMap = new HashMap<>();

for(Person p : list) {
    List<Person> innerList = new ArrayList<>();
    innerList.add(p);
    innerMap.put(p.getDate(), innerList);
    outerMap.put(p.getPersonId(), innerMap);
}
Run Code Online (Sandbox Code Playgroud)

java collections list hashmap java-8

12
推荐指数
2
解决办法
1010
查看次数

根据使用 Javascript 在另一个下拉列表中选择的内容设置下拉值

我有几个下拉菜单,它们的值很容易获得,如下所示。

下拉列表 1:

<select id="a">
  <option value="1">Bike</option>
  <option value="2">Car</option>
  <option value="3">Bus</option>
  <option value="4">Cycle</option>
  <option value="5">Wagon</option>
</select>
Run Code Online (Sandbox Code Playgroud)

下拉列表 2:

<select id="b">
  <option value="1">2 wheel</option>
  <option value="2">4 wheel</option>
  <option value="3">6 wheel</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我需要根据从第一个下拉列表中选择的值更改第二个下拉值。例如:

  • 如果从下拉列表 1 中选择了自行车或自行车,则应自动选择 2 轮
  • 如果选择 Car 或 Wagon,则应自动选择 4 轮。

对我来说唯一可用的选择是使用 JavaScript。我试过如下,但它不起作用。请帮助指出我遗漏了什么/做错了什么。

HTML:

<select id="a" onchange="change();">
  <option value="1">Bike</option>
  <option value="2">Car</option>
  <option value="3">Bus</option>
  <option value="4">Cycle</option>
  <option value="5">Wagon</option>
</select>
<select id="b">
  <option value="1">2 wheel</option>
  <option value="2">4 wheel</option>
  <option value="3">6 wheel</option>
</select>
Run Code Online (Sandbox Code Playgroud)

JS:

function change() {
if (document.getElementById('a').value == '1')
  document.getElementById("b").value …
Run Code Online (Sandbox Code Playgroud)

html javascript drop-down-menu

3
推荐指数
1
解决办法
1万
查看次数

将GMT中的XMLGregorianCalendar转换为LocalDateTime太平洋时间

我正在尝试将以GMT/UTC格式发送的XMLGregorianCalendar转换为America/Los_Angeles时区中的Java 8 LocalDateTime而没有运气.

这是我尝试过的,无法将时间转换为太平洋时间.

//xmlDate is 2017-11-13T00:00:00Z
ZonedDateTime zDateTime = xmlDate.toGregorianCalendar().toZonedDateTime().toLocalDateTime().atZone(ZoneId.of("America/Los_Angeles"));
LocalDateTime localDateTime = zDateTime.toLocalDateTime(); 
//Expected localDateTime is 2017-11-12T16:00. But I only get 2017-11-13T00:00
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

java date-conversion java-8 java-time

3
推荐指数
1
解决办法
4841
查看次数

如何从JPA本机查询的resultList中获取Clob值?

我通过JPA执行本机查询。我的数据库是oracle,我有一个Clob列。当我得到结果时,如何从resultList中获得clob值?我将其转换为String并得到ClassCastException。实际对象是com.sun.proxy。$ Proxy86。

Query query = entityManager.createNativeQuery("Select Value from Condition");
List<Object[]> objectArray =  query.getResultList();
for (Object[] object : objectArray) {
     ???
}
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa clob classcastexception

3
推荐指数
1
解决办法
1899
查看次数

Spring Batch 的问题

嗨,我最近一直在 Spring Batch 工作,需要一些帮助。

1)我想使用多个线程运行我的作业,因此我使用了 TaskExecutor,如下所示,

            @Bean
            public TaskExecutor taskExecutor() {
                SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor();
                taskExecutor.setConcurrencyLimit(4);
                return taskExecutor;
            }

    @Bean
        public Step myStep() {
            return stepBuilderFactory.get("myStep")
                    .<MyEntity,AnotherEntity> chunk(1)
                    .reader(reader())
                    .processor(processor())
                    .writer(writer())
                    .taskExecutor(taskExecutor())
                    .throttleLimit(4)
                     .build();
        }
Run Code Online (Sandbox Code Playgroud)

但是,在执行时可以在控制台中看到下面的行。

osbclsupport.SimpleJobLauncher : 没有设置 TaskExecutor,默认为同步执行器。

这是什么意思?但是,在调试时,我可以看到四个 SimpleAsyncExecutor 线程正在运行。有人可以对此有所了解吗?

2)我不想使用 spring 批处理创建的元数据表运行我的批处理应用程序。我试过添加spring.batch.initialize-schema=never. 但它没有用。我还看到了一些通过使用ResourcelessTransactionManager,来做到这一点的方法MapJobRepositoryFactoryBean。但是我必须为我的工作进行一些数据库事务。那我用这个可以吗?我也能够通过扩展DefaultBatchConfigurer和覆盖来做到这一点:

@Override
    public void setDataSource(DataSource dataSource) {
        // override to do not set datasource even if a datasource exist.
        // initialize will use a Map …
Run Code Online (Sandbox Code Playgroud)

spring spring-batch spring-boot

3
推荐指数
1
解决办法
4662
查看次数

“查询数据包太大”错误。在哪里更改 max_allowed_pa​​cket 变量?

我遇到了一个问题,我从 git 导入了一个 spring boot 项目,代码在我的队友计算机中运行得很好,但是我收到一个错误,我不知道如何解决,在运行我的 java 应用程序时出现此错误:

Packet for query is too large (1072729 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
Run Code Online (Sandbox Code Playgroud)

我阅读了有关该主题的一些答案,我的理解是我必须在 my.ini 文件中进行更改并更改此值:

max_allowed_packet=500M 
Run Code Online (Sandbox Code Playgroud)

但似乎我无法找到我的文件位置,我正在使用 MySQLWorkebench,并且我不知道在哪里可以找到此文件来进行更改或任何更改。

任何帮助将非常感激。

mysql configuration-files mysql-workbench spring-boot

0
推荐指数
1
解决办法
7887
查看次数