0
all。所以。我有一個問題:對於產生生成null id爲:class hibernate
空ID:類Notebook.Enities.Telephone
是的,這個問題已經到計算器,但我在這裏。爲什麼?我通過xml映射安排。
我Note.hbm.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Notebook.Enities.Note" table="note" schema="notebase">
<id name="id" type="java.lang.Integer">
<column name="Id" not-null="true"/>
<generator class="identity"/>
</id>
<one-to-one name="telephoneId" class="Notebook.Enities.Telephone" cascade="save-update"/>
<one-to-one class="Notebook.Enities.Description" name="descriptionId" cascade="save-update"/>
<one-to-one class="Notebook.Enities.Human" name="humanId" cascade="save-update"/>
<many-to-one class="Notebook.Enities.Group" name="group" fetch="join" lazy="false">
<column name="Group" not-null="true"/>
</many-to-one>
</class>
</hibernate-mapping>
接下來,我Telephone.hbn.xml(電話 - 手機RU-郎。)
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Notebook.Enities.Telephone" table="telephone" schema="notebase">
<id name="id" type="java.lang.Integer">
<column name="Id"/>
<generator class="foreign">
<param name="property">note</param>
</generator>
</id>
<one-to-one name="note" class="Notebook.Enities.Note" constrained="true"/>
<property name="telephone" column="Telephone"/>
<property name="descripton" column="Descripton"/>
</class>
</hibernate-mapping>
JSF頁面Text.xhtml(其他所有對象類似電話)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
>
<body>
<f:view>
<h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Фамилия:"/>
<h:inputText value="#{human.family}"/>
<h:outputText value="Имя:"/>
<h:inputText value="#{human.name}"/>
<h:outputText value="Отчество:"/>
<h:inputText value="#{human.secondName}"/>
<h:outputText value="Дата:"/>
<h:inputText value="#{human.birthday}">
<f:convertDateTime type="date" pattern="dd-MM-yyyy"/>
</h:inputText>
<h:outputText value="Телефон:"/>
<h:inputText value="#{telephone.telephone}"/>
<h:outputText value="Группа:"/>
<h:inputText value="#{group.group}"/>
<h:outputText value="Описание:"/>
<h:inputText value="#{description.text}"/>
</h:panelGrid>
<h:commandButton action="#{notebookFacade.createNote(human,telephone,group,description)}" value="Save" />
<h:commandButton action="descriptionList" value="Cancel"/>
<br/>
</h:form>
</f:view>
</body>
</html>
和方法createNote();
public void createNote(Human human, Telephone telephone, Group group, Description description){
Note note = new Note();
note.setTelephoneId(telephone);
telephone.setNote(note);
note.setHumanId(human);
human.setNote(note);
note.setGroup(group);
note.setDescriptionId(description);
description.setNote(note);
getNoteDAO.addNotes(note);
System.out.println("Add work!");
}
而addNotes();
public void addNotes(Note note) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(note);
session.getTransaction().commit();
System.out.println("This function is worked");
session.close();
}
我的方案:enter image description here
如果您需要別的東西,請。並請幫助。