1

최대 절전 모드 도구를 사용하여 엔티티을 생성하고 테이블에 매핑합니다. 생성되는 각 엔티티 클래스는 기본적으로 Serializable 인터페이스를 구현합니다. 어떻게 Serializable 인터페이스를 구현하지 못하게 할 수 있습니까? 다음은 툴에 의해 생성 된 테스트 클래스의 예입니다. 기본적으로 Serializable 인터페이스를 구현했습니다. 내 TestInterface 실제로 Serializable 인터페이스를 확장하므로 테스트 클래스가 필요하지 않습니다.최대 절전 모드 도구에서 Serializable 인터페이스를 구현하지 못하도록하는 방법

public TestInterface extends Serializable { 

} 

@Entity 
@Table(name = "TEST") 
public class Test implements TestInterface, java.io.Serializable { 
.. 
..  
} 

은 또한 엔티티의 상단에, 우리는 단지 이름 속성은 @Table 주석에 추가해야합니다. 또한 스키마 속성을 스키마 = "SampleUser"으로 추가하는 도구가 필요합니다. serialVersionUID를 코드에 추가해야합니다. 아래는 생성 도구가 필요한 코드입니다.

@Entity 
@Table(name = "TEST", schema = "SampleUser") 
public class Test implements TestInterface{ 
    private static final long serialVersionUID = 1L; 
    .. 
    ..  
} 

감사합니다. POJO 생성에 seralizable 인터페이스를 Implmenting 제거 : 아래 따를 수

답변

0

은 두 가지 문제

문제 1에 대한 접근한다.

해상도 :
최대 절전 모드 도구 작업이 POJO 클래스 declaration.It 보이는 생성 PojoTypeDeclation.ftl를 사용

/** 
${pojo.getClassJavaDoc(pojo.getDeclarationName() + " generated by hbm2java", 0)} 
*/ 
<#include "Ejb3TypeDeclaration.ftl"/> 
${pojo.getClassModifiers()} ${pojo.getDeclarationType()} ${pojo.getDeclarationName()} ${pojo.getExtendsDeclaration()} ${pojo.getImplementsDeclaration()} 

같은 당신은 제거 할 경우 $ {pojo.getImplementsDeclaration()} 다음이 FTL에서 당신 것 찾지 못했습니다 은 모든 클래스에이라는 일련 번호를 구현합니다.

다른 방법은 최대 절전 모드 EntityPojoComponentPojo 클래스를 확장해야하고 getImplementsDeclaration() 메소드를 사용자 정의 구현을 재정의 할 필요가있다.

2 호 : 스키마 주석이 테이블 주석에 없습니다.

해상도 : 뽀조 생성을 사용하여 자동으로 내부적으로 생성 된 각 클래스 표 주석을 추가 할 수 Ejb3TypeDeclaration.ftl을 사용하여 표 annotation.Hibernate 도구 작업에 스키마 속성을 생성하는 것이다 HibernateToolTask.

<#if ejb3?if_exists> 
<#if pojo.isComponent()> 
@${pojo.importType("javax.persistence.Embeddable")} 
<#else> 
@${pojo.importType("javax.persistence.Entity")} 
@${pojo.importType("javax.persistence.Table")}(name="${clazz.table.name}" 
<#if clazz.table.schema?exists> 
    ,schema="${clazz.table.schema}" 
</#if><#if clazz.table.catalog?exists> 
    ,catalog="${clazz.table.catalog}" 
</#if> 
<#assign uniqueConstraint=pojo.generateAnnTableUniqueConstraint()> 
<#if uniqueConstraint?has_content> 
    , uniqueConstraints = ${uniqueConstraint} 
</#if>) 
</#if> 
</#if> 

그것은 당신의 데이터베이스 스키마 개념 를 가지고 있으며, 여러분의 테이블이 스키마의 일부 경우에만 스키마 속성을 추가합니다.

Eg : If you are using MySql,then 
you will not get schema property because mysql DB dont have schema's 
concept. Converse is true in Postgress,Hsql,Oracle.. 

..