获取错误:404由于applicationContext.xml中的hibernate映射。但无法找到解决方案。
我有一个新的类型是图像。
Image.java
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;
public class Image
{
private String image_size;
private String image_type;
private MultipartFile image_file;
private String image_file_url;
private String image_status;
<!-- Getters and Setters -->
}
以下是applicationContext.xml中的代码
<bean id="imageSessionFactoryBean" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSourceBean"></property>
<property name="mappingResources">
<value>xxx/xxx/xxx/bean/Image.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="imageHibernateTemplateBean" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="imageSessionFactoryBean"></property>
</bean>
通过仅更改bean imageSessionFactoryBean的mappingResources属性中的value属性,我看到应用程序工作,否则显示ERROR:404。 我认为原因可能是File(Image.java)的名称,但我不确定。 Image.hbm.xml还包含Image.java类到数据库表图像的映射。
Image.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Nov 8, 2012 9:26:27 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="xxx.xxx.xxx.bean.Image" table="image">
<id name="img_id" type="java.lang.String">
<column name="IMG_ID" />
<generator class="native" />
</id>
<property name="content_uid" type="java.lang.String">
<column name="CONTENT_UID" />
</property>
<property name="img_url" type="java.lang.String">
<column name="IMG_URL" />
</property>
<property name="image_type_id" type="java.lang.String">
<column name="IMAGE_TYPE_ID" />
</property>
<property name="image_size_id" type="java.lang.String">
<column name="IMAGE_SIZE_ID" />
</property>
<property name="status" type="java.lang.String">
<column name="STATUS" />
</property>
</class>
</hibernate-mapping>
答案 0 :(得分:0)
我假设你想让类Image
成为一个Hibernate实体,以便将它存储在数据库中。
由于其字段private MultipartFile image_file;
,这不起作用。我非常怀疑你可以用hibernate存储这个字段。因此,不要使用此字段,而是将其替换为字节数组。并使用Multipart文件的内容填充此字节数组。
public class Image
{
//some primary key required.
private int id;
private String image_size;
private String image_type;
private byte[] image_content;
private String image_file_url;
private String image_status;
// Getters and Setters
//Constructor without parameter required.
public Image() {}
public void applyImgContent(MultipartFile upload) {
this.image_conten = upload.getBytes();
}
}