小编aza*_*ri7的帖子

java 8流,用于根据特定字段对对象列表进行排序

我有一个基于时间戳对对象进行排序的场景。课程如下:

class Employee 
{
    private String name;
    private List<Address> addresses;

    //...
    //Getters and setters for all fields
}

public class Address
{
    private String city;
    private Timestamp startDate;
    private Timestamp endDate;
    private String typeOfResidence;

    //...
    //Getters and setters for all the fields
}
Run Code Online (Sandbox Code Playgroud)

对于员工,有 2 种可能性 1. 它会有一个地址列表。2.地址列表可以为空

地址类有一个字段typeOfResidence,该字段可以具有诸如 Residence、Office、ForeignHome 之类的值。

每个都Employee可以有地址列表,一个地址是住宅,其他办公室等等。可以有多个住宅地址,但只有一个办公地址。

我想根据 typeOfResidence=Office 的地址的 startDate 对员工列表进行排序。

我编写了以下代码:

private void sortEmployeeListBasedOnStartDate(List<Employee> employeeList)
{
    Comparator<Address> byTimeStamp = Comparator.comparing(
        Address::getStarteDate,
        (ts1, ts2) -> ts1.toGregorianCalendar().compareTo(ts2.toGregorianCalendar())
    );

    employeeList.stream()
        .map(x -> …
Run Code Online (Sandbox Code Playgroud)

java sorting comparator java-stream

6
推荐指数
2
解决办法
8450
查看次数

Java + ResultSet.getObject()

我们的产品有两个相同的设置.一个设置正常工作,但其他设置遇到了以下问题.

我们在数据库上触发查询,查询如下:

String query = select col1_name, col2_name, col3_name from table_1;
PreparedStatement l_statement = null;
Connection con = "<connection-string>";
l_statement = con.prepareStatement(query);
Resultset l_rs = l_statement.executeQuery();
Run Code Online (Sandbox Code Playgroud)

现在col1("column1")数据类型是"SYS.XMLTYPE",获取列数据的代码是:

Object obj = null;
obj = l_rs.getObject(1);
String xmlStr = null;
if(obj instanceof XMLTYPE){
  ...
} lse if (obj instanceof XMLTYPE){
  ...
} else if (obj instanceof java.sql.SQLXML){
   xmlStr = ((SQLXML)obj).getString ();
}
Run Code Online (Sandbox Code Playgroud)

程序的控制在最后的其他地方,即

xmlStr = ((SQLXML)obj).getString ();
Run Code Online (Sandbox Code Playgroud)

现在,当我们检查xmlStr的值时,它包含垃圾字符:

Ÿcž(too many junk characters.)
Run Code Online (Sandbox Code Playgroud)

在一个设置上,这段代码正常工作,另一方面,xml String给出了垃圾字符,原因可能是什么?

java xml jdbc

5
推荐指数
1
解决办法
1057
查看次数

如何使用entityManager在JPA中启动事务

我已经开始研究使用spring,hibernate,JPA,SOAP webservices的应用程序.现在要求必须在事务中运行某些查询.如果任何一个失败,整个事务应该回滚.

dao层中的代码如下:

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import javax.persistence.Query;
import org.hibernate.Session;

    public class BillDAOImpl implements BillDao{

             @PersistenceContext(type = PersistenceContextType.EXTENDED)
             private EntityManager em;

             public boolean processBills() throws Exception{

             EntityTransaction tx = null;
             Session session = null;

             try{

                 session = em.unwrap(Session.class);
                 tx = em.getTransaction();

                 Bill bill = em.find(Bill.class, billId);

                 //session.beginTransaction();
                 tx.begin();
                 ...
                 ...
                 em.persist(bill);
                 ...
                 ...
                 em.merge(<other object>);
                 ...
                 ...
                 //session.getTransaction().commit();
                 tx.commit();
             } catch(){
             }

             }

    }
Run Code Online (Sandbox Code Playgroud)

执行时tx = em.getTransaction(),会出现以下错误:

java.lang.IllegalStateException: Cannot execute getTransaction() on a …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa transactions

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

EKS工作节点可以设置在不同区域吗

我们目前正在设计一个基于微服务的架构,将单体应用程序划分为微服务。

早些时候,巨石存在于两个不同的地区,即。美国和亚洲。美国实例将收到美国的请求,亚洲实例将收到亚洲国家的请求。

现在,我们想要使用 AWS EKS 来部署微服务。我检查了 EKS 部署在一个区域的 3 个不同的可用区中以维护 HA。在我们的场景中,我们是否需要有 2 个不同的 AWS EKS 设置,美国和亚洲各一个?

是否可以在不同区域只能使用一个EKS和工作节点?

该架构由AWS EKS、Spring Boot微服务、Angular 5应用程序、Docker和Kubernetes组成。

availability-zone kubernetes microservices amazon-eks

5
推荐指数
1
解决办法
5266
查看次数

如何在java中以ISO日期格式打印当前时间和日期?

我应该以ISO格式发送当前日期和时间,如下所示:

'2018-02-09T13:30:00.000-05:00'

我写了以下代码:

Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000'Z'");
System.out.println(formatter.format(date));
System.out.println(formatter1.format(date));
Run Code Online (Sandbox Code Playgroud)

它以下列方式打印:

2018-04-30T12:02
2018-04-30T12:02:58.000Z
Run Code Online (Sandbox Code Playgroud)

但它不是以上述格式打印.如何获得格式中显示的-5:00以及它表示什么?

java iso date java-8

4
推荐指数
1
解决办法
4130
查看次数

Scala SBT 无法下载依赖项

我是 Scala 和 Akka 的新手。我创建了一个新项目,下面是我的 build.sbt 文件。

name := "akka_essentials"

version := "0.1"

scalaVersion := "2.13.4"

val akkaVersion = "2.5.13"

libraryDependencies ++= Seq(
  "com.typesafe.akka" %% "akka-actor" % akkaVersion,
  "com.typesafe.akka" %% "akka-testkit" % akkaVersion,
  "com.scalatest" %% "scalatest" % "3.0.5"
)
Run Code Online (Sandbox Code Playgroud)

sbt 工具无法下载依赖项。错误日志如下:

[error] stack trace is suppressed; run 'last update' for the full output
[error] (update) sbt.librarymanagement.ResolveException: Error downloading com.typesafe.akka:akka-testkit_2.13:2.5.13
[error]   Not found
[error]   Not found
[error]   not found: C:\Users\Anand\.ivy2\local\com.typesafe.akka\akka-testkit_2.13\2.5.13\ivys\ivy.xml
[error]   not found: https://repo1.maven.org/maven2/com/typesafe/akka/akka-testkit_2.13/2.5.13/akka-testkit_2.13-2.5.13.pom
[error] Error downloading com.scalatest:scalatest_2.13:3.0.5
[error]   Not found …
Run Code Online (Sandbox Code Playgroud)

scala sbt akka

2
推荐指数
1
解决办法
3156
查看次数