spring+hibernate事务管理(注解方式),一对多存入数据库的问题
sale表(saleid(标识符),saledate)saleDetail表(saleDetailId(标识符),saleid,goodsid),saleid是关联sal...
sale表(saleid(标识符),saledate)
saleDetail表(saleDetailId (标识符),saleid,goodsid),saleid是关联sale表的外键
在执行了saleDAO.save后,sale表能正常插入,saleDetail表也能插入但是saleid字段却是null
例如:
Sale sale = new Sale();
SaleDetail saleDetail = new SaleDetail();
saleDetail.setgoodsid(1);
sale.setSaleDate("2011-4-11");
sale.getsSaleDetails().add(saleDetail);
saleDAO.save();
执行这段代码后,sale和saleDetail表中的数据分别应该是
sale:
saleid saleDate
1 2011-4-11
saleDetail:
saleDetailid saleid goodsid
1 1 1
sale表正常但是saleDetail表却是
saleDetail:
saleDetailid saleid goodsid
1 <null> 1
dao都是用MyEclipse8.5反向生成的,加上了@Transactional注解
spring配置文件中声明了事务管理器
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
初学ssh,不知道哪里有漏掉的步骤,求教 展开
saleDetail表(saleDetailId (标识符),saleid,goodsid),saleid是关联sale表的外键
在执行了saleDAO.save后,sale表能正常插入,saleDetail表也能插入但是saleid字段却是null
例如:
Sale sale = new Sale();
SaleDetail saleDetail = new SaleDetail();
saleDetail.setgoodsid(1);
sale.setSaleDate("2011-4-11");
sale.getsSaleDetails().add(saleDetail);
saleDAO.save();
执行这段代码后,sale和saleDetail表中的数据分别应该是
sale:
saleid saleDate
1 2011-4-11
saleDetail:
saleDetailid saleid goodsid
1 1 1
sale表正常但是saleDetail表却是
saleDetail:
saleDetailid saleid goodsid
1 <null> 1
dao都是用MyEclipse8.5反向生成的,加上了@Transactional注解
spring配置文件中声明了事务管理器
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
初学ssh,不知道哪里有漏掉的步骤,求教 展开
展开全部
嘿嘿~~
么~~一般么用中间件都会有提示(即ALT+/),根据提示显示的单词配置,不懂就查资料,上网下视频看,例如 cascade="all" 级联效果,设个save-update就行了,当然也要看有什么需求哦,有时间和耐心就多试试myeclipse的提示么~~
数据库中在外间处可以设的哦~~注意看表的编辑中的key的去找cascade、none等......
好无聊啊~~刚学完四种关系~~一起用好麻烦~~不能称心如意呀~~吐糟一下~~BYE~~
么~~一般么用中间件都会有提示(即ALT+/),根据提示显示的单词配置,不懂就查资料,上网下视频看,例如 cascade="all" 级联效果,设个save-update就行了,当然也要看有什么需求哦,有时间和耐心就多试试myeclipse的提示么~~
数据库中在外间处可以设的哦~~注意看表的编辑中的key的去找cascade、none等......
好无聊啊~~刚学完四种关系~~一起用好麻烦~~不能称心如意呀~~吐糟一下~~BYE~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是hibernate映射文件映射错误
追问
Sale.hbm.xml里一对多的配置
SaleDetail.hbm.xml里关联外键SaleID的配置
少了什么东西吗..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我当时写的时候 比如有个UserNameID,我选择的是数据库自动生成,我用myeclipse生成dao的时候,系统还默认给我配了个UserId(数据库里面没有)也给了我得到这个UserId的方法。我建议你不要手动插入id,试试看,我也不知道对不对。
更多追问追答
追问
你那个userId是联合主键吗?
追答
userId是我在数据表里自己定义的 映射文件中没有关于id的配置
但是在DAO实现类它给我提供了findById方法(还有个findByUserID()的方法)
public User findById(java.lang.Long id) {
log.debug("getting User instance with id: " + id);
try {
User instance = (User) getSession().get("org.bookshop.domain.User", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询