org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.ticktack.practice224.service.UserServiceIntegrationTest': Unsatisfied dependency expressed through field 'userRepo'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ticktack.practice224.repository.user.MemoryUserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
MemoryRepository
를 자꾸 생성하지 못한다고 함// UserServiceIntegrationTest.java
@Autowired UserRepository userRepo; // 여기가 MemoryUserRepository로 되어있었다
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not prepare statement
...
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "USER0.JOINED_AT" not found; SQL statement:
select user0.id as id11, user0.joined_at as joined_a2_1, user0.name as name3_1 from user user0 where user0.name=? [42122-200]
org.opentest4j.AssertionFailedError:
expected: true
but was: false
...
at com.ticktack.practice224.service.PostServiceIntegrationTest.게시물삭제(PostServiceIntegrationTest.java:119)
// JpaPostRepository.java
@Override
public Post save(Post post) {
post.setCreatedAt(new Date());
post.setUpdatedAt(post.getCreatedAt());
em.persist(post);
return post;
}
@Override
public Post update(Post post) {
post.setUpdatedAt(new Date());
em.merge(post);
return post;
}
PostForm
으로 받은 정보를 Post
에 넣는 것 누락[Error] datetime format java.text.ParseException: Unparseable date
SimpleDateFormat
클래스를 이용해 string으로 들어온 createdAt 정보를 Date로 바꾼 후 넘겨주었다.// PostController.java
@PostMapping("/posts/update")
public String updatePost(PostForm form) {
Post post = new Post();
...
// 날짜 string->Date
// post.setContent(form.getCreatedAt());
post.setCreatedAt(stringToDate(form.getCreatedAt()));
postService.updatePost(post);
return "redirect:/homes/selectHome?homeId=" + form.getHomeId();
}
private Date stringToDate (String date) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
Date parsedDate = new Date();
try {
parsedDate = formatter.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return parsedDate;
}
A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:
C:\Program Files\eclipse\jre\bin\javaw.exe
javaw.exe in your current PATH"
eclipse.ini
파일 안 -vm
경로 작성 (-vmargs 섹션 앞에 작성)JAVA_HOME
환경변수 없으면 에러나는 듯JAVA_HOME
을 시스템 변수에 추가해주어야 하는데 사용자 변수에 추가해서 일반 cmd창에서 자바 버전을 확인할 수 없었다.