Hibernate的关系和AngularJS [英] Hibernate relations and AngularJS

查看:207
本文介绍了Hibernate的关系和AngularJS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Hibernate中的游客行程之间的关系:

在这里输入的形象描述

如果我想创建一个旅客一个新的跳闸1 下,我参观路线的 /前端/#/跳闸创建/ 1 并在这里我有一个表格:

在这里输入的形象描述

[模板摘录]

 <形式的novalidate =NOVALIDATE级=形横>
          < MD-内容类=MD-填充>
            < D​​IV布局布局SM =列>
              < MD-输入容器弯曲>
                <标签>&Vorname LT; /标签>
                <输入NG模型=traveler.firstName残疾>
              < / MD-输入容器>
              < MD-输入容器弯曲>
                <标签>&Nachname LT; /标签>
                <输入NG模型=traveler.lastName残疾>
              < / MD-输入容器>
            < / DIV>
            < D​​IV布局布局SM =列>
              < MD-输入容器弯曲>
                <标签>&范沃特LT; /标签>
                <输入所需的类型=数字步=任何NAME =率NG-模式=trip.rate最小=0最大=9999999>
              < / MD-输入容器>
              < MD-输入容器弯曲>
                < MD-NG选择模型=trip.currency占位符=€>
                  < MD-NG选项值=货币NG-重复=在getCurrencies货币()> {{}货币}< / MD选项>
                < / MD-选择>
              < / MD-输入容器>
            < / DIV>
            < D​​IV布局布局SM =列>
              < MD-输入容器弯曲>
                <标签>&Beschreibung LT; /标签>
                < textarea的NG-模式=trip.description栏=1MD-MAXLENGTH =150>< / textarea的>
              < / MD-输入容器>
            < / DIV>
...

通过访问 $ routeParams.id 我可以得到的旅行者的细节1 喜欢的的firstName(=马塞尔)的lastName 的也 traveler_id

  $ scope.traveler = TravelerFactory.show({ID:$ routeParams.id});

这是在旅行者对象的例子。它包含了所有在行程 旅行者迄今取得:

<$p$p><$c$c>[{\"traveler_id\":1,\"company_id\":0,\"account\":false,\"firstName\":\"Marcel\",\"middleName\":null,\"lastName\":\"Schmitt\",\"gender\":null,\"trips\":[],\"email\":null}]

我的问题:


  1. 我怎么能与我的旅行者1 与新创建之旅

    [{\"trip_id\":2,\"traveler\":null,\"currency\":null,\"rate\":100,\"description\":\"Flug\",\"dateCreated\":null}]


  2. 这是映射关系基本概念的正确方法?


感谢您!

更多信息//后端:Java中,Hibernate的4.11,//用SpringMVC前端:AngularJS 1.4.3


解决方案

想想你的REST服务。

旅客信息URL(旅行者对象):

  /旅行/:ID  - &GT; #/旅行/ 1

新的旅游(旅行对象):

  /旅行/:ID /创建 - &GT; #/旅行/ 1 /创建

现有旅游URL(旅行对象):

  /旅行/:ID /旅游/:travel_id  - &GT; #/旅行/ 1 /旅行/ 123

编辑现有的旅游URL(旅行对象):

  /旅行/:ID /旅游/:travel_id /编辑 - &GT; #/旅行/ 1 /旅行/ 123 /编辑

所以,你添加新的旅行后,获得成功的调用带回了新的旅游标识(例如:travel_id = 456),并重定向到#/旅行/ 1 /旅行/ 456

我相信你一定能改善的是,仅仅例如

I have this relation between Travelers and Trips in Hibernate:

If I want to create a new trip for traveler 1, I visit the route /frontend/#/trip-creation/1 and here I have a form:

[excerpt of the template]

        <form novalidate="novalidate" class="form-horizontal">
          <md-content class="md-padding">
            <div layout layout-sm="column">
              <md-input-container flex>
                <label>Vorname</label>
                <input ng-model="traveler.firstName" disabled>
              </md-input-container>
              <md-input-container flex>
                <label>Nachname</label>
                <input ng-model="traveler.lastName" disabled>
              </md-input-container>
            </div>
            <div layout layout-sm="column">
              <md-input-container flex>
                <label>Wert</label>
                <input required type="number" step="any" name="rate" ng-model="trip.rate" min="0" max="9999999">
              </md-input-container>
              <md-input-container flex>
                <md-select ng-model="trip.currency" placeholder="€">
                  <md-option ng-value="currency" ng-repeat="currency in getCurrencies()">{{currency}}</md-option>
                </md-select>
              </md-input-container>
            </div>
            <div layout layout-sm="column">
              <md-input-container flex>
                <label>Beschreibung</label>
                <textarea ng-model="trip.description" columns="1" md-maxlength="150"></textarea>
              </md-input-container>
            </div>
...

By accessing the $routeParams.id I can get the details for traveler 1 like firstName (= Marcel) , lastName and also traveler_id.

$scope.traveler = TravelerFactory.show({id: $routeParams.id});

That is an example for the Traveler object. It contains all the Trips a Traveler had made so far:

[{"traveler_id":1,"company_id":0,"account":false,"firstName":"Marcel","middleName":null,"lastName":"Schmitt","gender":null,"trips":[],"email":null}]

My question:

  1. How can I relate my traveler 1 with the new created trip

    [{"trip_id":2,"traveler":null,"currency":null,"rate":100,"description":"Flug","dateCreated":null}]

  2. Is this a proper way of mapping the realtions?

Thank you!

Additional information // backend: Java, Hibernate 4.11, SpringMVC // frontend: AngularJS 1.4.3

解决方案

Think about your REST services.

traveler info URL (traveler object):

/traveler/:id  ->  #/traveler/1

new travel (traveler object):

/traveler/:id/create  ->  #/traveler/1/create

existing travel URL (travel object):

/traveler/:id/travel/:travel_id  ->  #/traveler/1/travel/123

edit existing travel URL (travel object):

/traveler/:id/travel/:travel_id/edit  ->  #/traveler/1/travel/123/edit

So, after you add new travel, get successful call back with new travel id (for example: travel_id=456), and redirect to #/traveler/1/travel/456

I am sure you can improve that, just example

这篇关于Hibernate的关系和AngularJS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆