Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2018, 20:24   #1
menthaa
Новичок
Джуниор
 
Регистрация: 29.04.2018
Сообщений: 1
По умолчанию Сохранение данных из одной таблицы в другой

Есть два класса Category и Type. И две таблицы в MySQL с такими же названиями.

Код:
CREATE TABLE `type` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `sort` varchar(255) NOT NULL,
  `categoryid` int(11) NOT NULL,
  PRIMARY KEY (`ID`),
  KEY `category_idx` (`categoryid`),
  CONSTRAINT `category` FOREIGN KEY (`categoryid`) REFERENCES `category_production` (`categoryid`) ON DELETE NO ACTION ON UPDATE NO ACTION
)

CREATE TABLE `category_production` (
  `categoryid` int(11) NOT NULL AUTO_INCREMENT,
  `category` varchar(45) NOT NULL,
  PRIMARY KEY (`categoryid`)
)
При создании записи в Type есть выпадающем списку с данными из Category. Когда нажимаю кнопку для подтверждения создания записи выдает ошибку(так же и с изменением):
HTTP Status 400 – Bad Request
Type Status Report

Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

Если везде убираю category, то программа работает исправно.

Type.java
Код:
@Entity
@Table(name = "type")
public class Type{
    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column(name = "sort")
    private String sort;

    @OneToOne
    @JoinColumn(name = "categoryid")
    private Category category;

//геттеры и сеттеры
}
Category.java
Код:
@Entity
@Table(name = "category_production")
public class Category implements Serializable {
    @Id
    @Column(name = "categoryid")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int  categoryid;

    @Column(name = "category")
    private String name_category;

//геттеры и сеттеры
}
TypeController.java
Код:
@Controller
public class TypeController {

    private TypeService typeService;

    @Autowired
    @Qualifier(value = "typeService")
    public void setTypeService(TypeService typeService) {
        this.typeService = typeService;
    }

    private CategoryService categoryService;

    @Autowired
    @Qualifier(value = "categoryService")
    public void setCategoryService(CategoryService categoryService) {
        this.categoryService = categoryService;
    }

    @RequestMapping(value = "types", method = RequestMethod.GET)
    public String listType(Model model){
        model.addAttribute("type", new Type());
        model.addAttribute("listType", this.typeService.listType());
        model.addAttribute("category", new Category());
        model.addAttribute("listCategory", this.categoryService.listCategory());

        return "types";
    }

        @RequestMapping(value = "/types/add", method = RequestMethod.POST)
        public String addType(@ModelAttribute("type") Type type, @ModelAttribute("category") Category category){
            if (type.getId()==0){
               this.typeService.addType(type);
//               this.categoryService.addCategory(category);
            }else {
                this.typeService.updateType(type);
//                this.categoryService.updateCategory(category);
            }

        return "redirect:/types";
    }

    @RequestMapping("/removetype/{id}")
    public String removeType(@PathVariable("id") int id){
        this.typeService.removeType(id);

        return "redirect:/types";
    }

    @RequestMapping("/edittype/{id}")
    public String editType(@PathVariable("id") int id, Model model){
        model.addAttribute("type", typeService.getTypeById(id));
        model.addAttribute("listType", typeService.listType());
//        model.addAttribute("listCategory", categoryService.listCategory());

        return "types";
    }

    @RequestMapping("typedata/{id}")
    public String typeData(@PathVariable("id") int id, Model model){
        model.addAttribute("type", typeService.getTypeById(id));
//        model.addAttribute("category", categoryService.getCategoryById(id));

        return "typedata";

    }
}
Types.jsp
Код:
<body>

<a href="../../index.jsp">Back to main menu</a>
<br/>
<br/>

<table class="tg">
    <tr>
        <th>
            <c:if test="${!empty type.sort}">Edit existing type</c:if>
            <c:if test="${empty type.sort}">Add new type</c:if>
        </th>
    </tr>
    <tr>
        <td>
            <c:url var="addAction" value="/types/add"/>
            <form:form action="${addAction}" commandName="type">
                <table>
                    <c:if test="${!empty type.sort}">
                        <tr>
                            <td><form:label path="id"><spring:message text="ID"/></form:label></td>
                            <td><form:input path="id" readonly="true" size="8" disabled="true"/><form:hidden path="id"/></td>
                        </tr>
                    </c:if>
                    <tr>
                        <td><form:label path="sort"><spring:message text="Sort"/></form:label></td>
                        <td><form:input path="sort"/></td>
                    </tr>
                    <tr>
                                <td><form:label path="category"><spring:message text="Category"/></form:label></td>
                           <td>
                               <form:select path="category" cssStyle="width: 200px;">
                                   <form:option value="-1">Select a category</form:option>
                                   <c:forEach items="${listCategory}" var="category">
                                       <form:option value="${category.id}">${category.name_category}</form:option>
                                   </c:forEach>
                               </form:select>
                           </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <c:if test="${!empty type.sort}"><input type="submit" value="<spring:message text="Edit Type"/>"></c:if>
                            <c:if test="${empty type.sort}"><input type="submit" value="<spring:message text="Add Type"/>"></c:if>
                        </td>
                    </tr>
                </table>
            </form:form>
        </td>
    </tr>
</table>
<c:if test="${!empty listType}">
    <table class="tg">
        <tr>
            <th width="60">ID</th>
            <th width="150">Sort</th>
            <th width="150">Category</th>
            <th width="50">Edit</th>
            <th width="50">Delete</th>
        </tr>
        <c:forEach items="${listType}" var="type">
            <tr>
                <td>${type.id}</td>
                <td><a href="/typedata/${type.id}" target="_blank">${type.sort}</a></td>
                <td>${type.category.name_category}</td>
                <td><a href="<c:url value="/edittype/${type.id}"/>">Edit</a></td>
                <td><a href="<c:url value="/removetype/${type.id}"/>">Delete</a></td>
            </tr>
        </c:forEach>
    </table>
</c:if>
</body>
typedata.jsp
Код:
<table class="tg">
    <tr>
        <th width="60">ID</th>
        <th width="120">Sort</th>
        <th width="120">Category</th>
    </tr>
    <tr>
        <td>${type.id}</td>
        <td>${type.sort}</td>
        <td>${type.category.name_category}</td>
    </tr>
</table>
menthaa вне форума Ответить с цитированием
Старый 18.12.2018, 20:33   #2
JavaDoc
Пользователь
 
Регистрация: 15.12.2018
Сообщений: 16
По умолчанию

У тебя сначало таблица категория должна быть заполнена чтобы что то можно было выбрать для типа
JavaDoc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных из одного листа одной таблицы в создаваемые листы другой таблицы zlotaust Microsoft Office Excel 5 25.06.2016 14:14
Как обновить столбец одной таблицы из другой таблицы kairat_tuyakbaev Microsoft Office Access 2 24.09.2010 12:46
Как обновить столбец одной таблицы из другой таблицы kairat_tuyakbaev SQL, базы данных 0 23.09.2010 23:42
авт. перенос данных из нескольких столбцов одной таблицы в один столбец другой таблицы A_ALL Microsoft Office Access 7 24.08.2009 21:13
Отбор данных из одной таблицы и создание из них другой!!! HuLiGaN Microsoft Office Excel 16 31.03.2009 03:28