2012-07-20 2 views
0

최대 절전 모드를 사용하는 내 친구의 EJB 프로젝트가 있습니다. 나는 그 프로젝트의 도움으로 자바 프로젝트를하고있다. 내 것은 EJB가 아니며 데스크탑 응용 프로그램입니다. 데이터베이스에 새 필드 (varchar라고 함)를 추가 할 때 내 친구의 프로젝트에있는 작은 동면 클래스 매핑 문제가 있습니다. 관련 Java 클래스에서 해당 필드를 사용할 수 있습니다. 예를 들어. 데이터베이스에서최대 절전 모드로 DB 테이블 자동 매핑

나는 테이블 A에 telephone_no 내가이

class A { 
    ....... 
    private String telephoneNo; 

    public String getTelephoneNo(){ 
      return this.telephoneNo; 
    } 


    public void setTelephoneNo(String telephoneNo){ 
      this.telephoneNo = telephoneNo; 
    } 
    ........ 
} 

하지만 내 프로젝트처럼 사용할 수 있습니다, 추가, 나는 열 이름을 설정하기 위해 주석을 사용해야합니다.

퍼즐은 어떻게 변수 이름을 해결합니까? 필자는 데이터베이스 필드와 클래스 변수 이름이 동일하면 최대 절전 모드에서 클래스를 자동으로 매핑합니다. 주석이 없거나 xml을 매핑해야하지만,이 경우 (자동으로 친구의 프로젝트) 어떻게 자동으로 해결됩니까?

또한 내 친구의 EJB 프로젝트에서 테이블을 추가 할 때 클래스 매핑이 전혀 표시되지 않습니다. 그러면 테이블을 자동으로 관련 클래스에 매핑합니다 (EJB에 클래스를 추가 한 후).

그러나 Java Desktop 응용 프로그램에서 어떻게이 작업을 수행 할 수 있습니까?

+0

매핑을 위해 친구 프로젝트에 hbm.xml 또는 주석이 있어야합니다. 확인해 봐. –

답변

0

여기에서 많은 질문을합니다 : 1. 엔티티를 검색 할 위치를 최대 절전 모드로 정의 할 수 있습니다. 현재의 jar 추가 jar ... (../MyApp.jar see configuration document)를 보도록 정의 할 수 있지만 엔티티로 사용되는 클래스는 주석 (@entity) 또는 xml 맵핑에 의해 선언되어야합니다. 2. 열 이름 및 테이블 이름. 테이블이나 필드에 이름을 지정하지 않으면 열 이름이나 테이블 이름이 동일해질 수 있으므로 예외에 따라 최대 절전 모드를 따르십시오. 당신은 hibernate의 기본 네이밍을 오버라이드 할 수있다 (프로퍼티 이름 = "hibernate.naming_strategy"를 보라).

+0

답변을 주셔서 감사합니다. 구성 문서를 읽었지만 프로젝트는 EJB가 아니며 표준 데스크톱 응용 프로그램입니다. 또한 클래스를 추가하고 @entity 주석을 추가했습니다. 실행하면 알 수없는 엔터티 예외가 발생하지만 EJB 프로젝트 (친구)가 DB에 테이블을 추가하면 EJB에서 클래스를 생성하고 EML을 작성하거나 편집하지 않고 사용할 수 있습니다. – user1479203

+0

이것을 읽으십시오 - http://binodsuman.blogspot.co.il/2009/10/jpa-example-outside-container-jpa.html 당신은 클래스가 최대 절전 모드로 스캔 될 필요가 있습니다. –