Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. create table ingredient(ingredient_id number(4) primary key,
  2. quantity varchar2(20),
  3. ingredient varchar2(40));
  4.  
  5. create table recipe(id number primary key,
  6. name varchar2(25) unique,
  7. ingredient_id number(4),
  8. constraint ingredient_fk foreign key(ingredient_id)
  9. references ingredient(ingredient_id));
  10.  
  11. @Entity
  12. @Table(name = "ingredient")
  13. public class Ingredient implements Serializable {
  14. private static final long serialVersionUID = -2489479702169761646L;
  15.  
  16. @Id
  17. @Column(name = "ingredient_id")
  18. private Integer id;
  19.  
  20. @Column(name = "quantity")
  21. private String quantity;
  22.  
  23. @Column(name = "ingredient")
  24. private String ingredient;
  25.  
  26. //getter and setters
  27. }
  28.  
  29. @Entity
  30. @Table(name = "recipe")
  31. public class Recipe implements Serializable {
  32. private static final long serialVersionUID = 4398676897855994030L;
  33.  
  34. @Id
  35. @Column(name = "id")
  36. private Integer id;
  37.  
  38. @Column(name = "name")
  39. private String name;
  40.  
  41. @OneToMany(cascade=CascadeType.ALL)
  42. @JoinColumn(name = "ingredient_id")
  43. private List<Ingredient> ingredients;
  44.  
  45. //getters and setter
  46. }
  47.  
  48. @RequestMapping("/add")
  49. public String newRecipe(Model model) {
  50. Recipe recipe = new Recipe();
  51. recipe.setIngredients(new AutoPopulatingList<Ingredient>(Ingredient.class));
  52.  
  53. model.addAttribute("recipe", recipe);
  54. return "recipes/new";
  55. }
  56.  
  57. @RequestMapping(value = "add", method = RequestMethod.POST)
  58. public String addRecipe(@Valid Recipe recipe, BindingResult result,
  59. Model model) {
  60. if (result.hasErrors()) {
  61. return "recipes/new";
  62. }
  63. recipeServices.addRecipe(recipe);
  64. return "redirect:/recipe/" + recipe.getId();
  65. }
  66.  
  67. <html>
  68. <script type="text/javascript">
  69. <!--
  70. function addRow(tableID) {
  71.  
  72. var table = document.getElementById(tableID);
  73.  
  74. var rowCount = table.rows.length;
  75. var row = table.insertRow(rowCount);
  76.  
  77. var cell1 = row.insertCell(0);
  78. var element1 = document.createElement("input");
  79. element1.type = "checkbox";
  80. element1.name = "chkbox[]";
  81. cell1.appendChild(element1);
  82.  
  83. var length = rowCount - 1;
  84.  
  85. var cell2 = row.insertCell(1);
  86. var element2 = document.createElement("input");
  87. element2.type = "text";
  88. element2.name = "ingredients[" + length + "].quantity";
  89. cell2.appendChild(element2);
  90.  
  91. var cell3 = row.insertCell(2);
  92. var element3 = document.createElement("input");
  93. element3.type = "text";
  94. element3.name = "ingredients[" + length + "].ingredient";
  95. cell3.appendChild(element3);
  96.  
  97. var cell4 = row.insertCell(3);
  98. var element4 = document.createElement("input");
  99. element4.type = "text";
  100. element4.name = "ingredients[" + length + "].comments";
  101. cell4.appendChild(element4);
  102. }
  103.  
  104. function deleteRow(tableID) {
  105. try {
  106. var table = document.getElementById(tableID);
  107. var rowCount = table.rows.length;
  108.  
  109. for (var i = 0; i < rowCount; i++) {
  110. var row = table.rows[i];
  111. var chkbox = row.cells[0].childNodes[0];
  112. if (null != chkbox && true == chkbox.checked) {
  113. table.deleteRow(i);
  114. rowCount--;
  115. i--;
  116. }
  117. }
  118. } catch (e) {
  119. alert(e);
  120. }
  121. }
  122. -->
  123. </script>
  124. </head>
  125. <body>
  126. <s:url value="/recipe/add" var="recipe_new" />
  127.  
  128. <sf:form modelAttribute="recipe" action="${recipe_new}" method="POST">
  129. <table>
  130. <tr>
  131. <th align="left" valign="middle">Recipe Name:</th>
  132. <td colspan="2"><sf:input path="name" id="recipeName" /> <br />
  133. <sf:errors path="name" cssClass="error" /></td>
  134. </tr>
  135. <tr>
  136. <td>
  137. <h3>Ingredients</h3> <INPUT type="button" value="+"
  138. onclick="addRow('dataTable')" /> <INPUT type="button" value="-"
  139. onclick="deleteRow('dataTable')" />
  140. <table id="dataTable" width="350px" border="1">
  141. <tr>
  142. <th></th>
  143. <th>Quantity</th>
  144. <th>Ingredient</th>
  145. </tr>
  146. <tr>
  147. <td><input type="checkbox" name="chk" /></td>
  148. <td><sf:input type="text" path="ingredients[0].quantity"
  149. title="Quantity" placeholder="Quantity" /></td>
  150. <td><sf:input type="text" path="ingredients[0].ingredient"
  151. title="Ingredient" placeholder="Ingredient" /></td>
  152. </tr>
  153. </table>
  154. </td>
  155. </tr>
  156. </table>
  157. </sf:form>
  158. </body>
  159. </html>
  160.  
  161. Exception: could not retrieve snapshot: [com.sandeep.recipe.tables.Ingredient#42]
  162. org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
  163. org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
  164. org.hibernate.persister.entity.AbstractEntityPersister.getDatabaseSnapshot(AbstractEntityPersister.java:1137)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement