SpringBoot에서 jpa를 사용하여 Entity를 생성시에 @Entity 어노테이션을 사용하여 DDL이 자동으로 생성되도록 설정을 하였고
초기 데이터 적재를 위해 resource 디렉토리 아래 data.sql 파일에 insert 문을 넣고 실행시 아래 에러가 발생했다.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of URL [file:/Users/guda/dev/SpringBoot/workspace/demo/out/production/resources/data.sql]: INSERT INTO book (`title`, `author`, `price`) VALUES ('지금 이대로 좋다', '법류 저', 9330); nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "BOOK" not found; SQL statement:
기본적으로 data.sql 스크립트는이제 Hibernate가초기화되기전에실행된다. data.sql을사용하여 Hibernate에의해생성된스키마를채우려면 spring.jpa.defer-datasource-initialization을 true로설정해라. 데이터베이스 초기화 기술을 혼합하는 것은 권장되지 않지만이는 data.sql을통해채우기전에하이버네이트에서생성한스키마를기반으로 schema.sql 스크립트를사용할수도있습니다.
Hibernate and data.sql
By default,data.sqlscripts are now run before Hibernate is initialized. This aligns the behavior of basic script-based initialization with that of Flyway and Liquibase. If you want to usedata.sqlto populate a schema created by Hibernate, setspring.jpa.defer-datasource-initializationtotrue. While mixing database initialization technologies is not recommended, this will also allow you to use aschema.sqlscript to build upon a Hibernate-created schema before it’s populated viadata.sql.
이클립스에서 SVN 사용시 업데이트 또는 커밋시 Checksum 관련 에러가 간혹 발생한다.
svn: Checksum mismatch for while updating
또는
svn: Working copy 'xxxxxxxxxxx' locked; try performing 'cleanup'
위와 같은 에러 발생시 해결 방안
1. 프로젝트 Cleanup 1) 해당하는 프로젝트 우클릭 > Team > Cleanup
위 방법으로 해결이 안될 시 아래 방법 시도
2. 탐색기로 해당 파일이 있는 폴더 삭제(주의요망!!) 1) 탐색기로 해당하는 프로젝트 접근 > svn 에러가 발생한 상위 폴더 삭제 (예로 testSrc/test.jsp 에서 에러가 발생했다면 testSrc 폴더를 삭제) !!주의 절대 이클립스로 삭제하면 안됨. 탐색기에서 삭제 해야 한다.
JButton은 보통 doClick() 메소드를 이용하여 처리하면 되지만 다른 방법도 있으니 알아보자.
내가 주로 사용했던 방법은 2번 이었음..^^; 뭐 편법은 아닌듯.. ㅋㅋ
원문에서 필요한 부분만 발췌 하였음..
There are a number of ways to fake an event.
2) The simplest is just to call a Listener method directly with a dummy Event object, filled in with just enough data to keep the method happy.
3)Create an Event and introduce it to the Component that will handle it at the processEvent method. with:
4)Create an Event
5)Generating MouseMoved Events has no effect on the screen mouse cursor. To make the underlying native GUI see your generated Events, use the Robot class to generate move clicks, moves etc.
기본적으로 버튼에 따른 이벤트를 실행한다면 doClick()을 사용해야겠다. 그리고 일단 막히면 API 부터 제대로 뒤져봐야겠다 ㅡㅡ; 끙.. doClick 모르고 있었다는 ㅡㅡ;
2010.11.03 추가 오랫만에 기존에 작성했던 프로그램에 간단한 수정을 하면서 이벤트를 강제로 발생하는 부분을 검색
내가 기존에 포스팅 했던 글이 뜬다. ㅡㅡ; 예전에 몰라서 포스팅한걸 지금도 까먹다니 ㅠㅠ
클래스: java.lang.Class<T>
메소드:
static Class<> forName(String className)
//->지정된 캐릭터 라인명을 가지는 클래스 또는 인터페이스에 관련지을 수 있던,Class 객체를 돌려준다.
newInstance() //-> 이 Class객체가 나타내는 클래스의 새로운 인스턴스 생성.