Генерировать сервисный слой с помощью гибернации

StackOverflow https://stackoverflow.com/questions/3029538

Вопрос

Я генерирую .hbm.xml картографические файлы и .java Файлы из схемы БД с инструментами Hibernate. Мой вопрос в том, что есть ли какой-нибудь вариант, чтобы генерировать классы обслуживания? Это классы, где я реализую магазин (), найти (), удалить (), и т. Д. ... Я знаю, что для C # есть много решений для генерации почти все. Я ищу то же самое, но с гибернатом. Есть ли?

Это было полезно?

Решение

Генерация «Услуги» не имеет большого смысла для меня как услуги, как правило, реализуют бизнес-логику (что гибернат не может волшебным образом генерировать).

Теперь, если то, что вы имеете в виду, это код доступа к данным, т. Е. DAOS (разоблачение и реализация методов CRUD и Finders), то Hibernate Tools. могу сделать это. Это DAO код (.java) вариант на захвате Плагин Eclipse показано ниже:

Alt Text http://docs.jboss.org/tools/2.0.0.ga/hibernateTools/en/html/images/codegenexporters.png.png.png.

Эквивалент Задача муравей является hbm2dao.

Но я лично не использую эту функцию, и я бы пошел Пуффоймо.

Другие советы

Нет возможности генерировать услуги.

Вы должны иметь возможность написать только один универсальный интерфейс DAO и реализацию с помощью Hibernate.

Так:

package persistence;

import java.io.Serializable;
import java.util.List;

public interface GenericDao<T, K extends Serializable>
{
    T find(K id);
    List<T> find();
    List<T> find(T example);
    List<T> find(String queryName, String [] paramNames, Object [] bindValues);

    K save(T instance);
    void update(T instance);
    void delete(T instance);
}

Весенний роума может иметь то, что вы хотите.

Вы можете реализовать уровень доступа к данным, просто объявляя интерфейсы, и их реализован с использованием прокси JDK, которые затем вызовут методы Hibernate. Детали здесь - Простой слой доступа к данным с помощью Hibernate.

Я реализовал это, и это хорошо работает и выросло, чтобы удовлетворить мои потребности. Я расширил Add (), удалите () и т. Д .. Методы, чтобы также инкусировать именованные запросы (findQueryName) и использование дженериков, поэтому все, что мне нужно сделать, чтобы объявить базовый интерфейс доступа к данным CRUD

   public interface SomeObjectDAO extends GenericDAO<SomeObject> {
   }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top