假设我有一个字符串列表.
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实用程序?
如何通过实用程序实现这一点,而不是编写自己的逻辑来做同样的事情?
我知道关于这个警告已经有很多问题,但我的问题有点不同.我知道我可以使用此配置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平台创建,但是我遇到了一些团队成员的问题:他们来自Oracle的旧学校(即他们使用PL/SQL做了遗留问题,而在他们的脑海中,业务逻辑应该只是在数据库上,只有一个小的java层调用了),我有一些关于这个的论点,但我想知道你的论点支持或利弊这个问题.
Java Favor(在我看来)
我有以下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)
有人知道如何将自定义附加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)
但这不是我想要的 - …
我可以知道这两个项目的区别吗?
数据输入materialized view可以刷新,但是view当我们使用select语句时.为什么不用view而不是materialized view?
目前在我的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官方文档中搜索但找不到任何内容.这里的潜在客户表示赞赏.
我正在使用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) 我想使用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吗?
以下两个查询中哪个更快?
SELECT TOP 1 order_date
FROM orders WITH (NOLOCK)
WHERE customer_id = 9999999
ORDER BY order_date DESC
Run Code Online (Sandbox Code Playgroud)
SELECT MAX(order_date)
FROM orders WITH (NOLOCK)
WHERE customer_id = 9999999
Run Code Online (Sandbox Code Playgroud)