我用@注解配置实体类映射
不知道是不是表没有主键的原因,我查出来的数据都是第一条,比如我查到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也不知道,往上也搜索不到
,还有无满意结贴输入什么密码啊,这么多打酱油的
不知道是不是表没有主键的原因,我查出来的数据都是第一条,比如我查到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也不知道,往上也搜索不到
,还有无满意结贴输入什么密码啊,这么多打酱油的
解决方案 »
- hibernate 实体配置出问题了,求指导
- 如何实现文件分发功能
- 系统日志问题
- 求 professional java servlet 2.3编程指南 这本书的源码
- 有人做过银行的ECIF系统吗?
- Apache2.2.8+Tomcat5.08中如何在Apache里面配置禁止根目录遍历及协议追踪?
- 打算学习hibernate,需要用什么版本的
- 请问什么是框架啊 ? 入门看些什么书?
- 我用DOM修改一个xml文件,但是请教以下怎么修改一些节点的值?
- 请帮忙:这个命令行的执行为什么看不到结果呢? 谢谢~
- 如何用代码来实现upload和download的security programming?
- 页面去List里对象的和
没人能回答出来,你可以把分给你认为尽力给你回答的人,这样你结帖率高了,会更有人来给你回答
积分也可以换取下载积分的,100分可用分换20下载分
其实昨天公司高层也有一个给我提过复合主键用了,但是只知道在配置文件中用,
我的实体类是实例化的,公司是内网,无法上网,这是我随便打的例子。
大哥,能不能提供个Annotation配置实体类的例子求赐教,昨天的帖子会和今天的一起结了,都是一个问题
没有让你加主键。。 在hibernate里面,他需要主键来标识唯一性, 你只需要改实体,将所有的属性做为一个联合主键,在实体里面体现出映射就好了。
public class StudentPK implements Serializable{ }将你所有的属性都写进去,名子要一样哦。 要重写hashcode() equals方法然后在你的实体类里面加上一个: @Id
private StudentPK pk;
hashcode() equals方法,
不懂
弱弱的最后请教一次
步骤:
右键--source--generate hashcode and equals
@GenericGenerator(name = "generator", strategy = "uuid")
@Id
@GeneratedValue(generator = "generator")
结果还是错误的,
难道是我配置错了嘛,
麻烦您出示正确答案
hibernate对象需要一个id键来标识这个数据的唯一性,如果你的数据库表设计不符合的话,可能不适合用hibernate ok?
@Embeddable
public class StudentPK implements Serializable{
//属性
//setget
//重写hashcode和equals
}
@Entity
3.@Table(name = “tb_cat”)
4.public class Cat{
@GenericGenerator(name = "generator", strategy = "increment")
@Id //我没有id 但是去掉就会报错
private StudentPK pk;
@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.}
是这样吧 ,反而没有数据出来了
第一次用Annotation,不知道怎么配置我的表中没有单个字段是唯一的 只有 date和number一起才是唯一的
祝成功
没有主键的表意味着允许重复的数据。用所有字段作为符合主键 ,查询数据时 是不是会漏掉一些重复的数据比如有两条‘A,B,C,D’数据,但只能查出来一条
这要看表的数据结构来定
比如 我的表中 有date 和 info 2个属性,2组数据不会出现同时出现的几率,如1990年有猪,在1990年就会再有猪了 只是在后面的number+1
可以让ME自动生成带有复合主键的表映射
用原生态sql取得到了正确的数据,在封装到的实体类,哎,就是麻烦了点