小编Has*_*ash的帖子

如何自动添加双引号,将字符串列表转换为逗号分隔值

假设我有一个字符串列表.

List<String> s = new ArrayList<>();
s.add("one");
s.add("two");
s.add("three");
Run Code Online (Sandbox Code Playgroud)

当我使用StringUtils.join(",", s)它时,给我结果

"one, two, three"
Run Code Online (Sandbox Code Playgroud)

而我需要输出为

"one","two","three"
Run Code Online (Sandbox Code Playgroud)

我们不喜欢使用Guava实用程序,因为项目不处于活动状态.

是否可以通过Apache Commons实用程序?

如何通过实用程序实现这一点,而不是编写自己的逻辑来做同样的事情?

java

9
推荐指数
2
解决办法
7062
查看次数

对于多个Java版本,避免在Eclipse中"没有在严格兼容的工作空间中安装JRE"警告

我知道关于这个警告已经有很多问题,但我的问题有点不同.我知道我可以使用此配置pom.xml来修复它

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

这消除了警告,但前提是我在Eclipse中安装并配置了Java 7.例如,如果我只有Java 8,我仍然会看到警告,除非我将上面配置中的版本更改为1.8:

构建路径指定执行环境JavaSE-1.7.工作区中没有安装与此环境严格兼容的JRE.

我的项目与Java 7,8,9和10兼容.我想要实现的是,如果安装了任何这些版本的Java而没有更改我的版本pom.xml以匹配当前安装的Java版本,则要避免此警告.告诉Eclipse Java 7或其他任何东西都是好的.

该项目仍然可以通过警告进行编译和工作,它只是让人分心,因为它标记了项目有问题.我知道我可以在Eclipse设置中隐藏这种类型的警告,但有没有办法通过仅使用一些配置来摆脱它pom.xml

java eclipse m2eclipse maven m2e

9
推荐指数
1
解决办法
2020
查看次数

在PL/SQL或Java中实现业务服务?赞成/反对?

我为一家创建网络服务堆栈架构的企业工作(基于概率休息),我是技术领导者.这个架构将使用Java平台创建,但是我遇到了一些团队成员的问题:他们来自Oracle的旧学校(即他们使用PL/SQL做了遗留问题,而在他们的脑海中,业务逻辑应该只是在数据库上,只有一个小的java层调用了),我有一些关于这个的论点,但我想知道你的论点支持或利弊这个问题.

Java Favor(在我看来)

  • 可扩展性
  • 监控
  • 面向对象语言
  • 同步/异步过程
  • 丰富的域名
  • 可测性

java oracle plsql

8
推荐指数
2
解决办法
1428
查看次数

JPQL中的正确加入

我有以下JPA实体:

@Entity
class UserClient{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
}

@Entity
class UserAccess{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @ManyToOne(optional = false, cascade = { CascadeType.REFRESH })
    private UserClient user;

    @Temporal(TemporalType.TIMESTAMP)
    private Date accessTs;
}
Run Code Online (Sandbox Code Playgroud)

现在,我想运行JPQL查询以获取具有上次访问日期的用户列表.遗憾的是,以下查询不会返回从未访问过系统的用户,即存在于UserClient表中,但一个中没有任何记录UserAccess.

SELECT ua.user, MAX(ua.accessTs) FROM UserAccess ua RIGHT JOIN ua.user
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?这是正确使用RIGHT JOIN吗?

我正在使用最新的Hibernate JPA版本(4.0.0.CR1)

jpa jpql

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

JAXB:List <Object>项的XmlAdapter

有人知道如何将自定义附加XmlAdapter到异构列表中包含的对象(如List)吗?例如 - 假设我们有一个带有miscelaneous对象列表的容器类:

@XmlRootElement(name = "container")
public class Container {
    private List<Object> values = new ArrayList<Object>();

    @XmlElement(name = "value")
    public List<Object> getValues() {
        return values;
    }

    public void setValues(List<Object> values) {
        this.values = values;
    }   
}
Run Code Online (Sandbox Code Playgroud)

如果我们放String-s,Integer-s等,它们将默认映射.现在假设我们想要放置一个自定义对象:

public class MyObject {
    //some properties go here   
}
Run Code Online (Sandbox Code Playgroud)

显而易见的解决方案是编写自定义适配器:

public class MyObjectAdapter extends XmlAdapter<String, MyObject> {
    //marshalling/unmarshalling
}
Run Code Online (Sandbox Code Playgroud)

但遗憾的是它不适用于包级别@XmlJavaTypeAdapter- 适配器从未调用过,因此编组失败.我不能getValues()直接应用它,因为可以有其他类型的对象. @XmlJavaTypeAdapter只有在Container中有MyObject类型的字段(也包含包级别注释)时才有效:

public class Container {
    private MyObject myObject;
}
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的 - …

java jaxb jaxb2

8
推荐指数
1
解决办法
5732
查看次数

物化视图与视图

我可以知道这两个项目的区别吗?

数据输入materialized view可以刷新,但是view当我们使用select语句时.为什么不用view而不是materialized view

oracle materialized-views

8
推荐指数
1
解决办法
7974
查看次数

Spring Boot MSSQL Kerberos身份验证

目前在我的spring启动application.properties文件中,我指定以下行连接到MSSql服务器.

spring.datasource.url=jdbc:sqlserver://localhost;databaseName=springbootd

spring.datasource.username=sa

spring.datasource.password=Projects@123
Run Code Online (Sandbox Code Playgroud)

我没有提供用户名和密码,而是想使用kerberos对用户进行身份验证,我将不得不进行所有更改.

我尝试在JPA官方文档中搜索但找不到任何内容.这里的潜在客户表示赞赏.

java sql-server jpa kerberos spring-boot

8
推荐指数
1
解决办法
2159
查看次数

如何使Hibernate不丢弃表

我正在使用hibernate,每当我尝试添加记录时,它都会丢弃表并再次添加它.它从不使用现有表并对其进行更改.

这是我的相关部分hibernate.cfg.xml:

<hibernate-configuration>
<session-factory>
  <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
  <property name="hibernate.connection.url">jdbc:derby://localhost:1527/sample</property>
  <property name="hibernate.connection.username">user</property>
  <property name="hibernate.connection.password">password</property>
  <property name="hibernate.connection.pool_size">10</property>
  <property name="show_sql">true</property>
  <property name="dialect">org.hibernate.dialect.DerbyDialect</property>
  <property name="hibernate.hbm2ddl.auto">update</property>
  <property name = "current_session_context_class">thread</property>
  <!-- Mapping the entities -->
<mapping class="inputDetails.Table1"/>
<mapping class="inputDetails.Table2"/>


  <!--mapping resource="contact.hbm.xml"/-->
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

这是我保存数据的方式:

SessionFactory factory = new Configuration().configure().buildSessionFactory();
    Session session = factory.getCurrentSession();
    session.beginTransaction();
//...
session.save(newrecord)
session.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)

hibernate

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

如何在JPQL join中有多个条件

我想使用JPQL以下两个表连接:

SELECT * FROM A LEFT JOIN 
B ON A.ID = B.A_ID AND B.lng = 'en'
Run Code Online (Sandbox Code Playgroud)

重要的部分是AND B.lng ='en'

这有可能JPQL吗?

jpa jpql

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

两个SQL查询的速度越快,排序并选择前1个,或选择MAX

以下两个查询中哪个更快?

1

SELECT TOP 1 order_date
FROM         orders WITH (NOLOCK)
WHERE customer_id = 9999999
ORDER BY order_date DESC
Run Code Online (Sandbox Code Playgroud)

2

SELECT MAX(order_date)
FROM         orders WITH (NOLOCK)
WHERE customer_id = 9999999
Run Code Online (Sandbox Code Playgroud)

sql sql-server

6
推荐指数
1
解决办法
3963
查看次数