2013-05-07 5 views
0

EJB3 주석이있는 java 클래스를 사용하여 Hibernate XML 매핑 파일을 생성해야한다. 웹 개발자 용 Juno 서비스 릴리스 2 용 Eclipse Java EE IDE에서 최대 절전 모드 도구를 사용합니다. this post 에 설명 된 것과 같은 Hibernate XML 맵핑 파일을 만들지 만 동일한 문제가 있습니다 (해당 게시물에서 언급 됨). EJB3 주석은 무시됩니다.Hibernate : EJB3 주석으로 java 클래스를 사용하여 hbm.xml 생성하기

나는 다음과 같은 POJO가있는 경우 :

package org.hibernate.tutorial.domain; 

import java.util.Date; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 
import javax.persistence.Table; 
import javax.persistence.Temporal; 
import javax.persistence.TemporalType; 
import javax.persistence.Transient; 
import org.hibernate.annotations.GenericGenerator; 

@Entity 
@Table(name = "EVENTS") 
public class Event { 
    @Id 
    @GenericGenerator(name = "eGen", strategy = "uuid") 
    @GeneratedValue(generator = "eGen") 
    @Column(name = "EVENT_ID") 
    private String id; 

    @Column(name = "EVENT_TITLE", length = 2730) 
    private String title; 


    @Column(name = "EVENT_LONG_TITLE", length = 130) 

    private String longTitle; 

    public String getLongTitle() { 
     return longTitle; 
    } 

    public void setLongTitle(String longTitle) { 
     this.longTitle = longTitle; 
    } 

    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "EVENT_DATE") 
    private Date date; 

    public Event() { 
    } 

    public String getId() { 
     return id; 
    } 

    private void setId(String id) { 
     this.id = id; 
    } 

    public Date getDate() { 
     return date; 
    } 

    public void setDate(Date date) { 
     this.date = date; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

그런 다음 매퍼

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<!-- Generated 07.05.2013 11:08:58 by Hibernate Tools 3.4.0.CR1 --> 
<hibernate-mapping> 
    <class name="org.hibernate.tutorial.domain.Event" table="EVENT"> 
     <id name="id" type="java.lang.String"> 
      <column name="ID" /> 
      <generator class="assigned" /> 
     </id> 
     <property name="title" type="java.lang.String"> 
      <column name="TITLE" /> 
     </property> 
     <property name="longTitle" type="java.lang.String"> 
      <column name="LONGTITLE" /> 
     </property> 
     <property name="date" type="java.util.Date"> 
      <column name="DATE" /> 
     </property> 
    </class> 
</hibernate-mapping> 

감사 답변을 많이 생성됩니다!

+0

무엇이 오류입니까? – Satya

답변

0

ID 생성기가 다르며 첫 번째 ID가 "uuid"이고 hbm이 "assigned"이면 열 이름과 테이블 이름도 다릅니다.

+0

저는 알고 있습니다. 그러나 초기 quastion은 source : jpa annotated java class와 관련된 올바른 xml 매핑을 생성하는 것에 관한 것입니다. –

+0

hbm 파일에 대한 anotations를 자동 변환하는 방법이 없다고 생각합니다 ... 당신은 정규 표현식으로 그것을 할 수 있지만 최대 절전 모드 도구로는 할 수 없습니다. 데이터베이스를 hbm 파일에 매핑 한 다음 차이점을 수정하거나 정규식을 사용하여 수동으로 수정해야합니다. – Ziul