• Как составить регулярное выражение исходя из следующих условий?

    Waynes
    @Waynes Автор вопроса
    Алексей Немиро: Благодарю вас еще раз, за такое подробное объяснения. Плюс вам в карму)
  • Как составить регулярное выражение исходя из следующих условий?

    Waynes
    @Waynes Автор вопроса
    Благодарю вас за ответ, Алексей! Т.е в регулярках можно толкьо десятичные использовать?
  • Как составить регулярное выражение исходя из следующих условий?

    Waynes
    @Waynes Автор вопроса
    Благодарю вас за помощь, но все таки хотелось бы прояснить пару делатей : что именно возвращает String.fromCharCode(1))? Почему вместо него не подставить x01. И собственно, я же правильно понимаю, что x01 означает Start of heading (исходя из этой статьи www.utf8-chartable.de/unicode-utf8-table.pl?number... )? Мы же могли поставить и x00, т.е главный смысл в том, что пользователь не может этот символ ввести?
  • Как настроить роутинг Angular 2 + Spring?

    Waynes
    @Waynes Автор вопроса
    fox36rus: Напишите мне на email: sabaka56@hotmail.com. Дальше там все объясню
  • Как грамотно засекьюрить REST приложение Angular 2 + Spring?

    Waynes
    @Waynes Автор вопроса
    Так я же написал, что не могу грамотно ограничить доступ к чанкам, т.к я не знаю какой и за что отвечает или вы что-то другое имели ввиду?
  • Оптимален ли код ниже для данной задачи?

    Waynes
    @Waynes Автор вопроса
    Очень и очень странно, что процессы проходят вне транзакции т.к на уровне сервиса у меня есть :
    @Service
    @Transactional(propagation = Propagation.REQUIRED)
    И вроде все должно четко работать, т.к я делаю вызовы через сервис. А как тогда клиенту вернуть сообщение или статус, что операция прошла успешно?Ведь если будет rollback, то он откатит только транзакцию. И код я почти все время форматирую в IDEA, правда, двойные отступы он у меня не убирает.
  • Оптимален ли код ниже для данной задачи?

    Waynes
    @Waynes Автор вопроса
    Большое вам спасибо, Vayho! Действительно, я не знаю зачем хотел, чтобы все новые PATH потомков, начинались с =)) Если было бы лучше и проще взять просто их ID. Очень интересный ход подсказали с flush . Но все равно я не знаю, что правильнее возвращать, в случае успеха или неудачи. Пока что я решил просто boolean значение вернуть. Но если у вас будет возможность, то могли бы вы подсказать, как обычно возвращают результат успеха или провала транзакции, в try/catch оборачивают и какую-нибудь exeption, связанный с ошибкой транзакции? Вот, кстати, код который получился, надеюсь все отступы учел:
    public boolean addCategoryList(List newCategoryList, int parentId) {
    boolean resultOfOperation=false;

    Category parentCategory = parentId == 0 ? null : entityManager.find(Category.class, parentId);

    for (Category category : newCategoryList) {
    entityManager.persist(category);
    entityManager.flush();

    if (parentCategory != null) {
    category.setParentCategory(parentCategory);
    category.setPath(parentCategory.getPath() + "." + category.getId());
    resultOfOperation=true;
    } else{
    category.setPath(String.valueOf(category.getId()));
    resultOfOperation=true;
    }
    }
    return resultOfOperation;
    }

    P.s только почему-то у меня все без flush генерится))
  • Оптимален ли код ниже для данной задачи?

    Waynes
    @Waynes Автор вопроса
    vayho, большое вам спасибо за пример! DAO слой обернут в прокси объект на уровне сервиса, так что во flush нет необходимости. Устанавливаю предка методом:
    public void addCategory(Category category) {
    category.setParentCategory(this);
    categoryList.add(category);
    }
    . А на счет ID, то на сервер приходят только имена категорий, как же у них могут быть ID, если они новые?)
  • Оптимален ли код ниже для данной задачи?

    Waynes
    @Waynes Автор вопроса
    Вы правы, там должен быть Parent id , тесты не хотел писать, так и добавил значение, и сам код в спешке написан. Я тоже думал инкрементировать по последней добавленной записи, только для этого придется ввести дополнительно поле last или дату поставить, либо есть другой способ?

    Если у вас будет возможность, то аргументируйте,пожалуйста, почему же код ужасен, для меня это очень важно,хоть я и писал в спешке, для себя я заметил косяк с id и лишний else.
  • Оптимален ли код ниже для данной задачи?

    Waynes
    @Waynes Автор вопроса
    Спасибо, не заметил на счет else-код в спешке писал. , но так я выберу конкретное значение после последней точки, а мне нужно вычленить значение после последней точки, не зная его
  • Как решить проблему с данной архитектурой Базы данных?

    Waynes
    @Waynes Автор вопроса
    Большое вам спасибо за помощь! Многое, конечно, предстоит переделывать, надо еще посмотреть, стоит ли динамическая реализация таких затрат, т.к проект для портфолио =) И если будет больше pro чем contra, то придется напрячься)
  • Как решить проблему с данной архитектурой Базы данных?

    Waynes
    @Waynes Автор вопроса
    Большое вам спасибо, за развернутый ответ. Следующая схема должна быть лучше:
    844fbf62a7b44f5b95c63a438f750784.jpg

    А что вы имеете ввиду под динамической иерархией? С моей системой я, вроде, могу организовать товар любого типа, разве нет?
    Плюс, я еще создал Producer, решил все-таки вынести ее отдельно, вы считаете, это оправданный шаг?
    Я понимаю, что у меня всего-лишь проект для портфолио, но хотелось бы знать как делаются БД в больших каталогах, ведь у меня "пирамидальная система", все равно в SUBJECT_MODEL_CHARACTERISTICS будут находится все характеристики всех сущностей, даже если я и сделал такое разделение, то при гипотетическом расширении базы до несколько сотен тысяч записей, поиск по Id все равно будет довольно шустрым?
    Как я понимаю, FK почти ничего не весят, это же всего лишь ссылки?
    А на счет View, то на изображении, под ними видно, что я имел ввиду. Т.к именно по характеристикам будет поиск, то мне надо будет их каким-то образом отобразить, чтобы пользователь смог воспользоваться или select-ом, или двумя text-area: от и до(где отображается цена), и это будет маячок Angular-у, чтобы он знал, каким образом вывести информацию. Пока лучше ничего не придумал, но буду рад, если вы сможете помочь.

    P.s на счет Subject, я совсем забыл, но уже написал в вопросе.Просто вообще ничего не мог дельного придумать. И до сих пор в голову ничего не приходит)
  • Angular 2 уже пора?

    Mindspace: https://www.youtube.com/watch?v=fyfY5aqbLNI&index=... . Он довольно хорошо объясняет, главное ничего мимо ушей не пропускать, и параллельно что-нибудь писать самому. Так же theNewBoston: https://www.youtube.com/watch?v=hXfigUyeHaY&list=P... . Но он еще доделывает свой туториал. После Mindspace-а , если официальный туториал был тяжким для понимания, то теперь уже все просто будет. По-сути дальше я просто разрабатывал свое приложения посматривая в доки + gitGub. Так же будет полезен webpack-овский стартер, думаю, многие фрондендщики с ним работали: https://github.com/AngularClass/angular2-webpack-s...
  • Почему некорректно работает роутинг в Angular 2?

    Waynes
    @Waynes Автор вопроса
    Алексей, в очередной раз большая благодарность вам! Все-таки в потомках надо было устанавливать useAsDefault: true, и тогда оно грамотно может перейти. Наверное, я не мог осознать или принять того решения, где сразу после перехода по одной ссылке, уже другой ссылочный роутинг открывался. Но сейчас я знаю как все решить
  • Как разделить запросы к API сервера и к его статическим ресурсам?

    Waynes
    @Waynes Автор вопроса
    Большое спасибо за помощь! Все заработало. Дело же оказалось в return "forward:/index.html"; Правда, теперь надо решить как же Angular заставить отдавать все js последовательно, чтобы все отрендарилось корректно.
  • Как настроить асинхронный роутинг Angular2+Webpack?

    Waynes
    @Waynes Автор вопроса
    Еще нашел очередную проблему: если переходить вверх по родительским ссылкам, то дочерние представления не закрываются. Загуглил, но везде пишут, что ангулар сам уничтожает дочерние представления.
  • Как настроить асинхронный роутинг Angular2+Webpack?

    Waynes
    @Waynes Автор вопроса
    Если еще немного мне разъясните, буду очень благодарен, на счет gzip-а. А точнее: как заставить браузер его прочитать, ведь банально отправить эти файлы как javascript не помогает?
  • Как настроить асинхронный роутинг Angular2+Webpack?

    Waynes
    @Waynes Автор вопроса
    Спасибо, Алексей, что столько мне помогли понять. Решил я проблему....в общем, по какой-то мне непонятной причине, раньше до вебпака, мне не хотел стандартный компилятор компилировать, и ругался, если есть потом у класса, и хотел, чтобы я прописал /administrationPanel/... . Но сейчас я просто оставил /administrationPanel и все красиво заработало, уж не знаю почему и где тут магия, но меня радует, что я наконец-то смогу продвинуться в работе
  • Как настроить асинхронный роутинг Angular2+Webpack?

    Waynes
    @Waynes Автор вопроса
    Большое вам спасибо за ответ. С горем пополам, но разобрался в этом,благодаря вам, и вроде все заработало, но не понятно почему не отображаются потомки, т.е если я делаю структуру без потомков, то чанки подгружаются, но не отображаются. Но если я делаю структуру с потомками, то чанки подгружаются, но не отображаются :

    {path: '/', name: 'Index', component: Home, useAsDefault: true},
      {path: '/home', name: 'Home', component: Home},
      {
        path: '/administrationPanel/...',
        name: 'AdminRoot',
        loader: () => require('es6-promise!./admin/admin')('AdminRoot')
      },


    admin.ts

    import {Component,OnInit} from 'angular2/core';
    import {RouteConfig, Router} from 'angular2/router';
    
    @Component({
      selector: 'admin',
      pipes: [],
      providers: [],
      directives: [],
      styles: [``],
      template: `<h1>From Admin!</h1>
      <div><a [routerLink]=" ['./Tables'] ">Tables</a></div>
      <router-outlet></router-outlet>`
    })
    
    @RouteConfig([
      {path: '/tables', name: 'Tables', loader: () => require('es6-promise!./tables/tables.component')('Tables')}
    ])
    export class AdminRoot implements OnInit {
    
      ngOnInit() {
        console.log('hello `Admin` component');
      }
    
    }


    tables

    import {Component,OnInit} from 'angular2/core';
    
    @Component({
      selector: 'app',
      pipes: [],
      providers: [],
      directives: [],
      styles: [``],
      template: `<h1>Tables,Man!</h1>`
    })
    
    export class Tables implements OnInit {
    
      ngOnInit() {
        console.log('hello `Table!` component');
      }


    p.s Еще раз большое вам спасибо за помощь, не сочтите за наглость, хочу у вас еще проконсультироваться по паре вопросов, на счет Webpack-а.Вообще моя цель java была, но пришлось и js изучать, чтобы проект сделать, а потом так синтаксис typescript понравился + Angular2, а как посмотрю, что все столько весит, да и файлов тучу передается...в обще догнал себя до webpack-а. К сути : Пытался я сначала сделать свою сборку, но что-то долго не склеивалось, пришел к этой.Я то, конечно понял, что они хотели сделать 3-я модулями: main.ts, vendor.ts, polyfills.ts, Т.е они предоставили самые нужные библиотеки+ наш главный модуль, который подтягивает все приложение, но как тогда работает CommonsChunkPlugin? Он же,вроде, должен из всех этих модулей вынести одинаковые библиотеки, и сделать из этого отдельный чанк, но этого не происходит. Он производит только наши асинхронные модули, что вполне логично. Тогда, что пытались сделать создатели сборки, разбивая верхушку приложения на 3 отдельных куска?

    И я буду вам признателен, если подскажете, почему же у меня браузер подгружает gzip файлы, но не распаковывает их, т.е я напрямую в index.html отдаю вместо
  • Как настроить роутинг родитель+потомок в Angular 2?

    Waynes
    @Waynes Автор вопроса
    К концу дня, конечно, смог разобраться от части и склеить с Tomcat-ом, но можете ли мне подсказать для чего нужен vendor.ts?Для асинхронной загрузки? Просто у меня из-за него 3.6 мегабайта подгружает =( И что значит в webpack.config : ENV: ENV
    HMR: HMR параметры? Конечно, для меня много чего тут лишнего, хотелось бы более внятного туториала по этому вебпаку, а там только сжатое описание.