如果没人能回答出提问,我csdn积分要来何用(回答出问题者给全分,也可以追加分)

guoyang842 2011-08-25 08:32:58
我用@注解配置实体类映射
不知道是不是表没有主键的原因,我查出来的数据都是第一条,比如我查到30条数据,但是30条都是第一条的 数据。
请问@注解配置实体类映射 要怎么配置
我的实体类是
@Entity
3.@Table(name = “tb_cat”)
4.public class Cat{
@GenericGenerator(name = "generator", strategy = "increment")
@Id //我没有id 但是去掉就会报错
@GeneratedValue(generator = "generator")
7. private String date;
8. @Column(name = “name”)
9. private String name;
11. @Column(name = “createDate”)
12. private int number;
13. //….getter、setter方法省略
14.}

我测试了一下,如果我再数据库中加主键就能正确获取到数据也就是说
@GenericGenerator(name = "generator", strategy = "increment")
@Id //我没有id 但是去掉就会报错
@GeneratedValue(generator = "generator")
这一部分代码错了,我查了api也不知道,往上也搜索不到
,还有无满意结贴输入什么密码啊,这么多打酱油的
...全文
325 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoyang842 2011-08-26
  • 打赏
  • 举报
回复
最后没有用annotation配置出来,
用原生态sql取得到了正确的数据,在封装到的实体类,哎,就是麻烦了点
guoyang842 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zn85600301 的回复:]

引用 11 楼 zl3450341 的回复:

@Embeddable
public class StudentPK implements Serializable{

}

将你所有的属性都写进去,名子要一样哦。 要重写hashcode() equals方法

然后在你的实体类里面加上一个:

@Id
private StudentPK pk;

费这么多事 加……
[/Quote]

@GenericGenerator(name = "generator", strategy = "uuid")
@Id
@GeneratedValue(generator = "generator")
结果还是错误的,
难道是我配置错了嘛,
麻烦您出示正确答案
zsp198805 2011-08-25
  • 打赏
  • 举报
回复
学习下。
zn85600301 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zl3450341 的回复:]

@Embeddable
public class StudentPK implements Serializable{

}

将你所有的属性都写进去,名子要一样哦。 要重写hashcode() equals方法

然后在你的实体类里面加上一个:

@Id
private StudentPK pk;
[/Quote]
费这么多事 加个uuid主键不就完了 没有主键的表 能干神马?
liuyuhua0066 2011-08-25
  • 打赏
  • 举报
回复
你的IDE应该支持自动生成hashcode和equals。
步骤:
右键--source--generate hashcode and equals
guoyang842 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zl3450341 的回复:]

@Embeddable
public class StudentPK implements Serializable{

}

将你所有的属性都写进去,名子要一样哦。 要重写hashcode() equals方法

然后在你的实体类里面加上一个:

@Id
private StudentPK pk;
[/Quote]

hashcode() equals方法,
不懂。。。。。。。。。
弱弱的最后请教一次
zl3450341 2011-08-25
  • 打赏
  • 举报
回复
@Embeddable
public class StudentPK implements Serializable{

}

将你所有的属性都写进去,名子要一样哦。 要重写hashcode() equals方法

然后在你的实体类里面加上一个:

@Id
private StudentPK pk;
zl3450341 2011-08-25
  • 打赏
  • 举报
回复
这个复合主键告诉 hibernate, 我是用所有的列来标识唯一性的
zl3450341 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guoyang842 的回复:]

引用 6 楼 liuyuhua0066 的回复:

引用 1 楼 zl3450341 的回复:
亲,hibernate用的时候,如果你没有定义主键映射,是不行的。是发生你说的这种数据重复的现象

解决办法就是:将所有的列做为复合主键,记得要序列化哦。


哈哈,亲,记得一定要有主键

不能加主键,副总裁做的数据库表,我没权利,他也不同意修改
[/Quote]

没有让你加主键。。 在hibernate里面,他需要主键来标识唯一性,

你只需要改实体,将所有的属性做为一个联合主键,在实体里面体现出映射就好了。
guoyang842 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zl3450341 的回复:]

亲,hibernate用的时候,如果你没有定义主键映射,是不行的。是发生你说的这种数据重复的现象

解决办法就是:将所有的列做为复合主键,记得要序列化哦。
[/Quote]

其实昨天公司高层也有一个给我提过复合主键用了,但是只知道在配置文件中用,
我的实体类是实例化的,公司是内网,无法上网,这是我随便打的例子。
大哥,能不能提供个Annotation配置实体类的例子

求赐教,昨天的帖子会和今天的一起结了,都是一个问题
guoyang842 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liuyuhua0066 的回复:]

引用 1 楼 zl3450341 的回复:
亲,hibernate用的时候,如果你没有定义主键映射,是不行的。是发生你说的这种数据重复的现象

解决办法就是:将所有的列做为复合主键,记得要序列化哦。


哈哈,亲,记得一定要有主键
[/Quote]
不能加主键,副总裁做的数据库表,我没权利,他也不同意修改
liuyuhua0066 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zl3450341 的回复:]
亲,hibernate用的时候,如果你没有定义主键映射,是不行的。是发生你说的这种数据重复的现象

解决办法就是:将所有的列做为复合主键,记得要序列化哦。
[/Quote]

哈哈,亲,记得一定要有主键
yt2626 2011-08-25
  • 打赏
  • 举报
回复
没有主键是肯定不行的,能看一下你的dao层的代码吗??
guoyang842 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 rainonly 的回复:]
hibernate映射要有主键才行...数据库表没有主键的话 用hibernate查询不到的....这是小生半年使用的小小经验...
[/Quote]

在配置文件用复合主键是可以的,只是我没配出来
pl3121605999 2011-08-25
  • 打赏
  • 举报
回复
你是怎么查询数据的?
magong 2011-08-25
  • 打赏
  • 举报
回复
新搞个主键字段如行号什么的,@Id加到那个字段上吧。
nodream521 2011-08-25
  • 打赏
  • 举报
回复
如果没人能回答出提问,我csdn积分要来何用(回答出问题者给全分,也可以追加分)
没人能回答出来,你可以把分给你认为尽力给你回答的人,这样你结帖率高了,会更有人来给你回答
积分也可以换取下载积分的,100分可用分换20下载分
zl3450341 2011-08-25
  • 打赏
  • 举报
回复
亲,hibernate用的时候,如果你没有定义主键映射,是不行的。是发生你说的这种数据重复的现象

解决办法就是:将所有的列做为复合主键,记得要序列化哦。
RainOnly 2011-08-25
  • 打赏
  • 举报
回复
hibernate映射要有主键才行...数据库表没有主键的话 用hibernate查询不到的....这是小生半年使用的小小经验...
qq756942070 2011-08-25
  • 打赏
  • 举报
回复
打个酱油
加载更多回复(18)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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