2009-08-10 5 views
0

xml 스키마에서 생성 된 Customer, InternalCustomer, ExternalCustomer (적절한 상속 포함)와 같은 엔터티에 대한 클래스가 있습니다. JPA (관련있는 경우 특정 구현을 제안하면 해당 클래스의 개체를 유지할 수 있음)를 사용하고 싶습니다. 그러나 생성 된 이후에 주석을 달 수는 없으며 스키마를 변경하고 다시 생성 할 때 주석이 지워집니다. 주석이나 persistence.xml 파일을 사용하지 않고도이 작업을 수행 할 수 있습니까?코드가 생성 될 때 JPA를 어떻게 활용할 수 있습니까?

입력 도구로 클래스 (또는 스키마)를 제공하고 DB를 작성하기 위해 SQL 문을 제공 할 수있는 도구가 있습니까 (아니면 나를 위해 만들 수 있습니까?). DB를 만드는 데 필요한 모든 정보가 스키마에 있어야하기 때문에 그렇게 보일 것입니다. 나는 인덱스를 생성하거나 dB의 조정하지만 단지 등 사전

답변

2

당신은 확실히 동적으로 클래스를 생성, 이러한 상황에서 JDO를 사용하여 메타 데이터에

덕분에 올바른 테이블을 만드는 방법에 대해 이야기하고 있지 않다 , 모든 바이트 코드 향상 및 런타임 지속성을 제공하여 클래스가 생성되고 향상 된 클래스 로더를 사용합니다. As per http://www.jpox.org/servlet/wiki/pages/viewpage.action?pageId=6619188

JPA에는 이러한 메타 데이터 API가 없습니다.

--Andy (DataNucleus는)

+0

나는 이것이 내가 바로 표현을하지 않았다 만약 내가 요청 또는 죄송 있었는지 생각하지 않습니다. 클래스의 바이트 코드를 유지하고 싶지 않습니다. 클래스의 인스턴스 (예 : 새 InternalCustomer ("Name", "Address");)를 데이터베이스로 직렬화 한 다음 다시로드하려고합니다. 그러나 대부분의 JPA 구현에서 그렇게 할 때 InternalCustomer 클래스에 주석을 달아 프레임 워크에서 DB로 직렬화하는 방법을 안내해야합니다. 물론 코드는 스키마에서 생성되므로 클래스에 주석을 추가 할 수 없습니다. – fnCzar

+0

사람들이 이해할 수 있도록 코드를 정의하지 않는 이유는 무엇입니까? 이 3 가지 "생성 된"클래스가 있지만 @Blob로 표시된 엔터티에 필드가있는 경우 직렬화 된 형식 중 하나를 유지할 수있는 유일한 방법이 있습니다. 그거 있니? 그렇지 않으면 나는 어쨌든 대답을 주셔서 감사하고 싶지 않다는 것을 이해하지 못했습니다. – DataNucleus

+0

. 내가 여기에 더 이상의 대답을 얻을 것인지 확실하지 않습니다. – fnCzar

관련 문제