1

Я использую инструменты спящего режима для создания сущностей, сопоставления с таблицами. Каждый созданный класс объектов реализует интерфейс Serializable по умолчанию. Как мы можем фактически остановить инструмент от реализации интерфейса Serializable. Ниже приведен пример тестового класса, который был сгенерирован инструментом. По умолчанию он реализовал интерфейс Serializable. Мой TestInterface Фактически расширяет интерфейс Serializable, поэтому я не хочу, чтобы это был Test Class.Как остановить инструменты спящего режима от реализации интерфейса Serializable

public TestInterface extends Serializable { 

} 

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

А также на верхней части лиц, мы просто имя атрибут добавлен в @Table аннотацию. Мне также нужен инструмент для добавления атрибута схемы как schema = "SampleUser". Мне также нужно добавить serialVersionUID в код. Ниже приведен код, который мне нужен для создания инструмента.

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

спасибо.

ответ

0

Вы можете следовать ниже подходит для двух выпусков

Выпуск 1: Удаление Implmenting seralizable интерфейс в поколение Pojo.

Разрешение:
Hibernate задача инструмент использует PojoTypeDeclation.ftl для создания класса POJO declaration.It выглядит

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

Если удалить $ {pojo.getImplementsDeclaration()} в этом FTL, то вы будете не найти реализует сериализацию в каждом классе.

Другой путь, вам нужно продлить зимуют EntityPojo и ComponentPojo класс и необходимо переопределить метод getImplementsDeclaration() пользовательский реализации.

выпуск 2: атрибут схемы отсутствует в аннотации таблицы.

Разрешение: поколения Pojo использование HibernateToolTask ​​автоматически генерирует схему свойство в задаче инструмента Таблицы annotation.Hibernate внутри использовать Ejb3TypeDeclaration.ftl, чтобы добавить таблицу аннотаций в каждом сгенерированном классе.

<#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.. 

..

Смежные вопросы