我一直在通过我没有管理员权限的机器上的命令行远程处理我的项目,并且在运行后git push origin master我收到以下错误消息:
(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:
Run Code Online (Sandbox Code Playgroud)
我的.git/config文件包含以下内容:
Run Code Online (Sandbox Code Playgroud)[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://username@github.com/username/repository.git [branch "master"] remote = origin merge = refs/heads/master
我之前收到了403错误.在这里发表评论之后,我将用户名放在远程网址的@符号之前,从那以后,我一直收到Gtk错误.
当我使用ssh -X并尝试推送登录到机器时,我收到以下错误:
X11 connection rejected because of wrong authentication.
(gnome-ssh-askpass:31922): Gtk-WARNING **: cannot open display:localhost:10.0
Run Code Online (Sandbox Code Playgroud)
如果我将遥控器的URL更改为git@github.com:username/repository.git,则错误为:
ssh: connect to host github.com port 22: Connection timed out
fatal: The remote …Run Code Online (Sandbox Code Playgroud) 我一直试图找到一个JPA Criteria API教程但是没有取得多大成功.你知道任何初学者吗?我想在Java5/Maven应用程序中开始使用它来构建复杂的搜索查询.
我正在设计一个基于JPA/Hibernate,Spring和Wicket的新应用程序.DAO和服务层之间的区别对我来说并不清楚.根据维基百科,DAO是
一个对象,它为某种类型的数据库或持久性机制提供抽象接口,提供一些特定的操作而不暴露数据库的细节.
我想知道DAO是否可以包含对数据访问没有太多帮助的方法,但使用查询更容易执行?例如"获取在某些机场运营的所有航空公司的清单"?听起来我更多的是服务层方法,但我不确定在服务层中使用JPA EntityManager是否是良好实践的一个例子?
放置@Transactional注释的最佳做法是什么?我应该注释接口方法还是实现?
我正在尝试在我的新项目中使用Criteria API:
public List<Employee> findEmps(String name) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Employee> c = cb.createQuery(Employee.class);
Root<Employee> emp = c.from(Employee.class);
c.select(emp);
c.distinct(emp);
List<Predicate> criteria = new ArrayList<Predicate>();
if (name != null) {
ParameterExpression<String> p = cb.parameter(String.class, "name");
criteria.add(cb.equal(emp.get("name"), p));
}
/* ... */
if (criteria.size() == 0) {
throw new RuntimeException("no criteria");
} else if (criteria.size() == 1) {
c.where(criteria.get(0));
} else {
c.where(cb.and(criteria.toArray(new Predicate[0])));
}
TypedQuery<Employee> q = em.createQuery(c);
if (name != null) {
q.setParameter("name", name);
}
/* ... */ …Run Code Online (Sandbox Code Playgroud) 在我之前的问题,DAO和服务层(JPA/Hibernate + Spring)之后,我决定在使用JPA/Hibernate,Spring和Wicket的应用程序中仅使用一个DAO作为我的数据层(至少在开始时).提出了使用通用CRUD方法,但我不太确定如何使用JPA实现它.你能给我一个例子或分享一个关于这个的链接吗?
我试图在加号上分割算术表达式(例如"1 + 2 + 10 + 15").但是,我没有设法编写适当的正则表达式.我认为这会奏效:
expression.split("\\+");
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.你知道正确的解决方案吗?
当我使用此命令在Maven中运行单个测试时:
mvn test -Dtest=InitiateTest
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
No tests were executed!
Run Code Online (Sandbox Code Playgroud)
它在几分钟前工作,但现在由于某种原因停止工作.我mvn clean在运行测试之前试过运行了几次,但没有用.
测试看起来像这样:
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class InitiateTest {
public static FirefoxDriver driver;
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
}
@Test
public void initiateTest() throws Exception {
driver.get("http://localhost:8080/login.jsp");
...
}
@After
public void tearDown() throws Exception {
driver.close();
Run Code Online (Sandbox Code Playgroud)
}}
更新:
这是通过将此依赖项添加到POM引起的:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当我删除它,一切正常.即使我添加这两个依赖项而不是前一个依赖项,一切正常:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.0b1</version>
<scope>test</scope>
</dependency> …Run Code Online (Sandbox Code Playgroud) 我正在开发一个基于JPA + Hibernate,Spring和Wicket的Web应用程序.我想知道在我的代码中实现事务的最佳方法是什么?我应该使用什么交易经理?应该是org.springframework.orm.jpa.JpaTransactionManager,org.springframework.jdbc.datasource.DataSourceTransactionManager或者别的什么?我想用Spring来管理我的交易.
我需要处理一个CSV文件,并且每个记录(行)都会保留一个实体.现在,我这样做:
while ((line = reader.readNext()) != null) {
Entity entity = createEntityObject(line);
entityManager.save(entity);
i++;
}
Run Code Online (Sandbox Code Playgroud)
这个save(Entity)方法基本上只是一个EntityManager.merge()电话.CSV文件中大约有20,000个实体(行).这是一种有效的方法吗?这似乎很慢.使用会更好EntityManager.persist()吗?这种解决方案有何缺陷?
编辑
这是一个漫长的过程(超过400s),我尝试了两种解决方案,用persist和merge.两者的完成时间大致相同(459s vs 443s).问题是如果逐个保存实体是最佳的.据我所知,Hibernate(我的JPA提供程序)确实实现了一些缓存/刷新功能,所以我不必担心这一点.
java ×9
jpa ×6
spring ×3
dao ×2
jpa-2.0 ×2
transactions ×2
annotations ×1
architecture ×1
criteria-api ×1
crud ×1
genericdao ×1
git ×1
github ×1
interface ×1
maven ×1
regex ×1
selenium ×1
split ×1
ssh ×1
string ×1
testing ×1