1

私はHibernateを初めて使用します。このケースをどのように表現できるか疑問があります。

-->テーブル メッセージ: - (PK) MsgSender -> テーブル 'User' への外部キー - (PK) MsgDestination -> テーブル 'User' への外部キー - (PK) MsgDateSend - MsgContent - IsReaded

-->テーブル ユーザー -(PK) ユーザー名 - ...

これは私の Message.hbm です:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="Message" table="MESSAGE">
        <composite-id name="id" class="MessageId">
            <key-many-to-one name="MsgSender" class="User">
                <column name="msgSender"/>
            </key-many-to-one>
            <key-many-to-one name="MsgDestination" class="User">
                <column name="msgDestination"/>
            </key-many-to-one>
            <key-property name="msgDateSend" type="double" column="MsgDateSend"/>
        </composite-id>
        <property name="msgContent" type="java.lang.String">
            <column name="MsgContent" />
        </property>
        <property name="isReaded" type="boolean" access="field">
            <column name="ISREADED" />
    </property>
    </class>
</hibernate-mapping>

そして、これは私のPOJOです: クラスメッセージ:

public class Message implements Serializable {
/**
 * 
 */
private static final long serialVersionUID = -5319468638732762052L;
private MessageId id;
private String msgContent;
private boolean isReaded;

public Message() {
    this.id = new msgContentId();
}

/**
 * @return the id
 */
public MessageId getId() {
    return id;
}

/**
 * @param id the id to set
 */
public void setMessageId(MessageId mId) {
    this.id = mId;
}

/**
 * @return the msgContent
 */
public String getMsgContent() {
    return msgContent;
}

/**
 * @param msgContent
 *            the msgContent to set
 */
public void setMsgContent(String msgContent) {
    this.msgContent = msgContent;
}

/**
 * @return the isReaded
 */
public boolean getIsReaded() {
    return isReaded;
}

/**
 * @param isReaded
 *            the isReaded to set
 */
public void setIsReaded(boolean isReaded) {
    this.isReaded = isReaded;
}
}

クラス メッセージ ID:

public class MessageId implements Serializable{
/**
 * 
 */
private static final long serialVersionUID = 1L;
User msgSender;
User msgDestination;
double msgSend;


/**
 * @return the msgSender
 */
public User getMsgSender() {
    return msgSender;
}

/**
 * @param msgSender
 *            the msgSender to set
 */
public void setMsgSender(User msgSender) {
    this.msgSender = msgSender;
}

/**
 * @return the msgDestination
 */
public User getMsgDestination() {
    return msgDestination;
}

/**
 * @param msgDestination
 *            the msgDestination to set
 */
public void setMsgDestination(User msgDestination) {
    this.msgDestination = msgDestination;
}

/**
 * @return the msgSend
 */
public double getMsgSend() {
    return msgSend;
}

/**
 * @param msgSend
 *            the msgSend to set
 */
public void setMsgSend(double msgSend) {
    this.msgSend = msgSend;
}
}

この構造では、Hibernate は挿入、削除などを行いません... 誰かがこの問題を解決するのを手伝ってくれますか?

前もって感謝します。

4

0 に答える 0