0

スプリングフォームタグと休止状態を使用しています。

私のjspページには次のコードがあります。

<tr><td><form:input path="userEnteredHostNameString" size="30" maxlength="200"/></td>
<td><form:input path="userEnteredDirectoryString" size="30" maxlength="200"/></td>
<td><form:input path="userEnteredUserNameString" size="20" maxlength="20"/></td>
<td><form:input path="userEnteredPasswordString" size="20" maxlength="20"/></td></tr>

私のlocation.javaのゲッターとセッター

public String getUserEnteredHostNameString() {
        return userEnteredHostNameString;
    }
    public void setUserEnteredHostNameString(String userEnteredHostNameString) {
        if (userEnteredHostNameString!=null) userEnteredHostNameString = userEnteredHostNameString.toUpperCase();
        this.userEnteredHostNameString = userEnteredHostNameString;
    }
    public String getUserEnteredDirectoryString() {
        return userEnteredDirectoryString;
    }
    public void setUserEnteredDirectoryString(String userEnteredDirectoryString) {
        if (userEnteredDirectoryString!=null) userEnteredDirectoryString = userEnteredDirectoryString.toUpperCase();
        this.userEnteredDirectoryString = userEnteredDirectoryString;
    }
    public String getUserEnteredUserNameString() {
        return userEnteredUserNameString;
    }
    public void setUserEnteredUserNameString(String userEnteredUserNameString) {
        if (userEnteredUserNameString!=null) userEnteredUserNameString = userEnteredUserNameString.toUpperCase();
        this.userEnteredUserNameString = userEnteredUserNameString;
    }
    public String getUserEnteredPasswordString() {
        return userEnteredPasswordString;
    }
    public void setUserEnteredPasswordString(String userEnteredPasswordString) {
        if (userEnteredPasswordString!=null) userEnteredPasswordString = userEnteredPasswordString.toUpperCase();
        this.userEnteredPasswordString = userEnteredPasswordString;
    }

私のコントローラーには、次のコードがあります。

FtpScanEvents f = new FtpScanEvents();
        if(location.getUserEnteredHostNameString()!=null){
            f.setHostName(location.getUserEnteredHostNameString());
            }
        if(location.getUserEnteredDirectoryString()!=null){
            f.setDirectory(location.getUserEnteredDirectoryString());
            }
        if(location.getUserEnteredUserNameString()!=null){
            f.setUserName(location.getUserEnteredUserNameString());
            }
        if(location.getUserEnteredPasswordString()!=null){
            f.setPassword(location.getUserEnteredPasswordString());
            }
        ftpDao.save(f);

FtpScanEventsテーブルにはhostName, directory, username, password, locationId, idx, Id列があります。

ftpscaneventsのhbmマッピングファイル:

<hibernate-mapping package="ca.ups.tundra.model">
    <class name="FtpScanEvents" table="FTP_SCAN_EVENTS">
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <property name="hostName" type="string" column="HOSTNAME" length="200"/>
        <property name="directory" type="string" column="DIRECTORY" length="200"/>
        <property name="userName" type="string" column="USERNAME" length="20"/>
        <property name="password" type="string" column="PASSWORD" length="20"/>
        <many-to-one name="location" class="Location" cascade="all">
            <column name="ID" not-null="true" />
        </many-to-one>
    </class>
</hibernate-mapping>

save(eエンティティ)コード。

@Override
    @Transactional(propagation = Propagation.MANDATORY)
    public void save(E entity) {
        if(entity == null)
            throw new NullArgumentException("entity");
        Session s = sessionFactory.getCurrentSession();
        s.saveOrUpdate(entity);
    }

プログラムが終了し、コンソールにエラーがない場合ftpDao.save(f);は、どんな提案でも大歓迎です。

4

1 に答える 1

0

saveメソッドで、プロパティがありませんでした。そのプロパティにif条件を追加すると、機能しました。

于 2012-09-24T15:01:11.953 に答える