그래들 의존성은 아래와 같아요
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
testCompile group: 'junit', name: 'junit', version: '4.11'
compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.3.10.Final'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6'
implementation "jakarta.xml.bind:jakarta.xml.bind-api:2.3.2"
implementation "org.glassfish.jaxb:jaxb-runtime:2.3.2"
}
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
version="2.1">
<persistence-unit name="hello">
<class>패키지.클래스</class>
<properties>
<!-- 필수 속성 -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="비밀번호"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/root?serverTimezone=UTC&characterEncoding=UTF-8"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
</properties>
</persistence-unit>
</persistence>
이렇게 설정해야 강의듣는데 문제가 없더라구요!
클래스 태그 안에는 패키지 명, 클래스 이름 넣어주시면 됩니다.
비밀번호는 mysql 계정 비밀번호 입력하시면 됩니다!
야생형으로 시작해서 gradle이 편하더라구요!ㅎㅎ
강의를 듣는데 저처럼 gradle, mysql로 진행하시는 분이 계시다면 이렇게 설정하시고 시간 절약하세요!
상운님 공유 감사합니다^^
답글
근데 jakarta는 왜들어가있는거죠? 저는 안넣어도 움직이던데
답글
김상운
2021.05.28구글링해서 찾아봤는데요
JAXB 라이브러리 (Java Architecture for XML Binding)가없는 Java 11 을 사용했기 때문에 JAXBException 오류가 발생한다고 하네요.
따라서 저는 자바 11을 사용중이라 위와같이 설정을 해야 java.lang.NoClassDefFoundError 에러를 피할 수 있다고 하네요.
아마 질문자 님은 버전이 자바 11 아래의 버전을 사용중이신거 아닌가 싶어요
persistence.xml은 Gradle로 적용해도 무조건 있어야하는 파일인가요?
답글