我的一个News类中有 private List<String> images = new ArrayList<String>();
<class name="News" table="NEWS">
<id name="id" column="NEWSID" length="10">
<generator class="assigned"/>
</id>
<property name="title" column="TITLE"/>
<property name="content" column="CONTENT"/>
<property name="newsDate" column="NEWSDATE" type="java.util.Date"></property>
<list name="images" table="IMAGES" cascade="all" lazy="true">
<key column="NEWSID" ></key>
<list-index column="ID"></list-index>
<element type="string" column="HREF"></element>
</list>
</class>
我在mysql建了一张表保存String list 保存时String 时,值能保存进去,但是NEWSID的值却是0,是什么原因呢?
<class name="News" table="NEWS">
<id name="id" column="NEWSID" length="10">
<generator class="assigned"/>
</id>
<property name="title" column="TITLE"/>
<property name="content" column="CONTENT"/>
<property name="newsDate" column="NEWSDATE" type="java.util.Date"></property>
<list name="images" table="IMAGES" cascade="all" lazy="true">
<key column="NEWSID" ></key>
<list-index column="ID"></list-index>
<element type="string" column="HREF"></element>
</list>
</class>
我在mysql建了一张表保存String list 保存时String 时,值能保存进去,但是NEWSID的值却是0,是什么原因呢?
解决方案 »
- java如何编写一个象百度那样在线听歌的接口供其他地方调用,并访问在线听够
- js控制object 播放视频问题
- 求救高手!!!!!在jsp中用struts2标签 如何清除session值。或者清空session。
- jsp页面发布问题---在线等待
- hibernate 关联 关系 我非常疑惑
- JAVA get 传递参数问题
- 如何用javascript改button的onclick=""里面的值
- 问题急待解决!!!
- 请问各位大侠,jbuilder8下不能保存jsp文件,现在有解决方法了吗?
- 怎么用js实现在一个标签之后添加一个标签?
- 跪求,Help.......
- 紧急求助,刚学netbeans+Tomcat用JSP编写Web Application。写了一半实在写不出来了,求助,非常感谢
1、<list name="images" table="IMAGES" cascade="all" lazy="true">
既然你的image已经作为一个值对象使用了,那么你的News就负责管理它的生命周期所以对于cascade="all" 是没有用的因为他是多余的。
2、<list-index column="ID"></list-index>这个东西是记录位置的,你起名为ID,估计你对他没有理解,或者说这个起名是不合适的。
你的映射应该没有错,按照你的描述我的做的测试类如下package com.ccay.test.valueCollection.list.xml;import java.util.ArrayList;
import java.util.List;
public class User {
private long userId;
private String firstname;
private String lastname;
private List<String> tasks = new ArrayList<String>();
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public List<String> getTasks() {
return tasks;
}
public void setTasks(List<String> tasks) {
this.tasks = tasks;
}
}
测试代码如下package ccay.test;import java.util.ArrayList;import org.hibernate.Session;
import org.hibernate.Transaction;import com.ccay.test.HibernateSessionFactory;public class Test {
@org.junit.Test
public void testDDL(){
Session session = HibernateSessionFactory.getSession();
Transaction transaction = session.beginTransaction();
News news = new News();
news.setId(1234567L);
news.setTitle("title");
news.setContent("content");
ArrayList<String> images = new ArrayList<String>();
images.add("image1");
images.add("image2");
images.add("image3");
images.add("image4");
news.setImages(images);
session.save(news);
transaction.commit();
HibernateSessionFactory.closeSession();
}
}
自动ddl如下
create table IMAGES (
NEWSID bigint not null,
HREF varchar(255),
ID integer not null,
primary key (NEWSID, ID)
)
create table NEWS (
NEWSID bigint not null,
TITLE varchar(255),
CONTENT varchar(255),
NEWSDATE datetime,
primary key (NEWSID)
)
alter table IMAGES
add index FK80ED76783D6C2427 (NEWSID),
add constraint FK80ED76783D6C2427
foreign key (NEWSID)
references NEWS (NEWSID)没有出现你的问题!