数据库插值问题

feng8008 2008-01-29 03:19:47
我有个表,其中有一个主键和一个identity列,比如:table:id(主键)user_id(标识列)
我用hibernate链接,插值时给identity赋值插入报错,不给它插值用entity.getU/serId得到有事空,
请问有什么好办法帮我解决这个问题,谢谢
...全文
84 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmk2005 2008-05-09
  • 打赏
  • 举报
回复
<property name="id" update="false" lazy="false" generated="insert">
</property>
这样配置就行了
xql80329 2008-01-29
  • 打赏
  • 举报
回复
select max(userId) from " + class_name.getSimpleName()).list()
.get(0);

from 少个表名 不过主键 最好设成 自增长;
老紫竹 2008-01-29
  • 打赏
  • 举报
回复
另,如果你不想修改结构,把userId 设置为
insertable="false"

保存完之后,你再读取看看!
老紫竹 2008-01-29
  • 打赏
  • 举报
回复
我只能说一句,你的数据库设计的好奇怪啊!哈哈哈!

把主键换过来吧!
userId作为主键
username 作为唯一键

明白???这个才是正确的数据库结构设计!
feng8008 2008-01-29
  • 打赏
  • 举报
回复
我的identity不是主键啊
我的hbm
<class name="user.com.mo.Users" table="users" schema="dbo" catalog="common">
<id name="username" type="java.lang.String">
<column name="username" length="50" />
<generator class="assigned" />
</id>
<property name="userId" type="java.lang.Integer">
<column name="user_id" not-null="true" />
</property>
主键是username,
identity列是userId

如果我在hbm里设置identity,我插值时不写obj.setUserId(this.find_max_id() +1);
是可以插入值的,identity也有值,但是我通过主键查找 obj=session.get(class_name, (Serializable)id)
之后 ,obj.getUserId是null的,这是怎么回事?
老紫竹 2008-01-29
  • 打赏
  • 举报
回复
1 identity 是自动增加的,所以绝对不能设置ID
2 你应该在save之后再getid(),必要时先刷新,refresh,一下

如果你的hbm配置了正确的 identity 主键类型,id 会自动取回来的。
favorite7w 2008-01-29
  • 打赏
  • 举报
回复
这个transaction的用法是不是有问题。
改成这样试下呢?

Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Object obj = new Object();
session.saveOrUpdate(obj);
transaction.commit();
feng8008 2008-01-29
  • 打赏
  • 举报
回复
session.clear();
obj.setUserId(this.find_max_id() +1);
session.save(obj);
session.beginTransaction().commit();

public Integer find_max_id() {
return (Integer) dao.getSession().createQuery(
"select max(userId) from " + class_name.getSimpleName()).list()
.get(0);
}

赋值类型肯定没问题,代码都是常规写法
favorite7w 2008-01-29
  • 打赏
  • 举报
回复
给user_id插值报错?是否赋值的类型不正确?可以把部分代码贴上来,好判断一点。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧