Благодаря @ M.Deinum
решение было немного больше.
Удалить классы Specification
& amp; TelefonbuchSpecifications
.
И просто вставьте TelefonbuchSpecifications
как вспомогательный класс в TelefonbuchRepository
public interface TelefonbuchRepository extends JpaRepository, JpaSpecificationExecutor {
public class TelefonbuchSpecifications {
public static Specification hasVorname(String vorname) {
return (root, query, cb) -> {
return cb.like(cb.lower(root.get(Telefonbuch_.vorname)), "%" + vorname.toLowerCase() + "%");
};
}
public static Specification hasNachname(String nachname) {
return (root, query, cb) -> {
return cb.like(cb.lower(root.get(Telefonbuch_.nachname)), "%" + nachname.toLowerCase() + "%");
};
}
}
}
Для метода search
в SucheController
тогда:
List list = telefonbuchRepository.findAll(TelefonbuchSpecifications.hasVorname(vorname));
Я имею представление, что приложения так отличаются друг от друга и нашего понимания того, как приложения должны быть записаны, все еще очень ограничено. Мимо приложений Windows Forms я продолжил работать, так отличались друг от друга. Некоторые различия в дизайне, которые я видел, (включая большинство комбинаций):
Поэтому я не думаю, что возможно создать одну реализацию MVC (или MVP), который всегда соответствует хорошо.
Лучшие сообщения я видел действительно объяснение MVC и почему система MVC создается путем, это, серия "Build Your Own CAB" Jeremy D Miller. После работы, хотя это необходимо смочь понять опции намного лучше. Умное Клиентское Руководство Microsoft (CAB / Microsoft Composite Application Block) нужно также рассмотреть. Это немного сложно, но это может работать хорошо на приложения, которые имеют хорошую подгонку.
Выбор Реализации MVC/MVP для Проекта Winforms дает обзор, который стоит прочитать. Много людей как PureMVC. Я никогда не использовал его, но я посмотрел бы на него в следующий раз, когда мне нужна платформа MVC.
"Предъявитель Сначала" является подходом разработки программного обеспечения, который комбинирует идеи шаблона разработки Образцового предъявителя представления (MVP) и разработки через тестирование. Это позволяет Вам начаться путем записи тестов на языке клиента. Например:
"Когда я нажимаю кнопку 'сохранения' затем, файл должен быть сохранен, и несохраненный файл, предупреждающий, должен исчезнуть”.
У меня нет опыта с помощью "Предъявителя Сначала", но я дам ему попытку, когда я получу шанс, поскольку это выглядит очень перспективным.
Другие вопросы о Переполнении стека Вы можете, могут хотеть посмотреть на, здесь и здесь.
Если Вы думаете об использовании WPF в какой-либо точке, смотрят на Model-View ViewModel (MVVM) шаблон. Вот очень хорошее видео, на которое необходимо смотреть: Jason Dolinger на Model-View-ViewModel.
MVVM (Образцовая Модель Представления Представления) Шаблон разработки для Winforms дает другую опцию, которая может сделать это easer для преобразования в WPF, если когда-либо необходимый. Волшебный. Trevor является еще одним образцом MVVM для Windows Forms, которые также включают автоматическую привязку на основе имен свойства.
Также спросите себя, почему Вы используете MVC.
После того как Вы ясны на своих целях, становится легче выбрать одну реализацию или другого.
Вы посмотрели PureMVC? Я нашел, что никто не может договориться о том, на что действительно похож MVC, как только они начинают создавать определенную реализацию.
Обновление: Вы могли создать свой собственный запуск с чего-то более простого такой как MobileMVC. Компактный код Платформы должен компилировать/выполнять OK в Windows. Так как это - школьное присвоение, я предложил бы, чтобы Вы на самом деле провели некоторое время, учась, как MVC на самом деле работает.
Вы могли бы хотеть смотреть на Дифференциальное Выполнение .
Здесь это находится в SourceForge
IMO, это - значительное улучшение на MVC, хотя это все еще довольно необычно.
ОБНОВЛЕНИЕ: В дополнение к моему предыдущему ответу ниже, я предлагаю читать о "Предъявителе Сначала" подход (особенно статьи PDF)
Я рекомендовал бы MVP (шаблон PassiveView на самом деле) вместо MVC. Вам действительно не нужны никакие специальные платформы для этого, это, как Вы организуете свой код.
Один подход (который я обычно беру) должен разделить каждую форму окон на три объекта:
Пример кода (простой псевдокод, только для иллюстрации):
interface IView
{
string Username { get; set; }
string Password { get; set; }
event EventHandler LogOnButtonClicked;
void InformUserLogOnFailed();
void MoveToMainScreen();
}
class Presenter
{
public Presenter(IView view)
{
this.view = view;
view.LogOnButtonClicked += new EventHandler(OnLogOnButton);
}
private void OnLogOnButton()
{
// we ask some service to verify the username/password
bool isLogOnOk = logOnService.IsUserAndPasswordOk(view.Username, view.Password);
if (isLogOnOk)
view.MoveToMainScreen();
else
{
view.Username = "";
view.Password = "";
view.InformUserLogOnFailed();
}
}
private IView view;
}
class Form : IView
{
public Form()
{
presenter = new Presenter(this);
}
public string Username
{
get { return TextBoxUsername.Text; }
set { TextBoxUsername.Text = value; }
}
public string Password
{
get { return TextBoxPassword.Text; }
set { TextBoxPassword.Text = value; }
}
public void InformUserLogOnFailed()
{
MessageBox.Show("Invalid username or password.");
}
public void MoveToMainScreen()
{
// code for opening another form...
}
private Presenter presenter;
}
Microsoft Composite Interface Application block запустила свою жизнь как реализацию MVC (среди других шаблонов, которые она реализовала). Версия выпуска, однако, развитый из реализации MVP, которая может быть обсуждена, чтобы быть своего рода другой интерпретацией понятия MVC.
Если Вы готовы проверить код очень полного (и так или иначе комплекс) реализация MVP, можно найти MS-CAB как один из компонентов Фабрики клиентского программного обеспечения Microsoft Smart. Это идет с исходным кодом. Можно найти его здесь.Удачи!
Хороший пример при прокрутке Вашей собственной реализации MVC, использующего Windows Forms, может быть найден здесь. Исходный код включен.
Поскольку Вы читаете, изучаете и пишете код для этого присвоения, Вы собираетесь найти, что существует много разногласий по вопросам того, как MVC должен быть реализован. Этот - простой случай, который отражает разделение проблем, а также хороший пример 'инфраструктуры', требуемой поднять трубку это.
Когда Вы будете вне школы, Вы, вероятно, захотите возвратиться к платформе как другие плакаты, рекомендовали.