2016-07-12 2 views
0

최대 절전 모드 주석 @Table(name="message")과 함께 Message이라는 클래스에 테이블 정의가 있습니다. Java Hibernate @ 테이블 이름을 매개 변수로 사용

@Entity 
@Table(name="message") 
public class Message implements Serializable 

그래서 나는 Message 개체를 만들고 자바 코드에서 데이터베이스 테이블 message에 저장할 수 있어요.

내가 무엇을하고 싶은지 Message 개체에 어떤 테이블 이름을 사용해야하는지 알려주는 것입니다. Message(String tableName) 같은 매개 변수를 사용하여 만들고 싶습니다. 그런 다음 테이블 이름 주석은 다른 하나는 동일

@Entity 
@Table(name=tableName) 
public class Message implements Serializable 

모든처럼, 해당 매개 변수에서해야 사용됩니다.

어떻게 만드시겠습니까?

답변

0

NamingStrategies를 사용하여 테이블 이름을 변경할 수 있습니다.

public class MyNamingStrategy extends DefaultNamingStrategy { 

    @Override 
    public String tableName(String tableName) { 
    return tableName; 
} 
} 

다음과 같이 사용하십시오.

SessionFactory sessionFactory; 
Configuration config = new AnnotationConfiguration() 
.configure("hibernate.cfg.xml") 
.setNamingStrategy(new MyNamingStrategy()); 
sessionFactory = config.buildSessionFactory(); 
session = sessionFactory.openSession(); 
관련 문제