Hibernate对jpa annotation的支持
来源:互联网 发布:单片机p0 p1 p2 p3 编辑:程序博客网 时间:2024/06/08 07:47
@Table(name="t_user1")
public class User1 {} //如果是group则必须得重命名表,因为group是关键字
@Id
//采用数据库自增方式生成主键
//@GeneratedValue(strategy=GenerationType.AUTO)
@GeneratedValue
public int getId() {
return id;
}
@Column(name="create_time")
public Date getCreateTime() {
return createTime;
}
//年龄不持久化,则数据库里没有
@Transient
public int getAge() {
return age;
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)//主键由数据库自动生成(主要是自动增长型)
public int getId() {
return id;
}
@Id
@GeneratedValue(strategy=GenerationType.TABLE) //使用一个特定的数据库表格来保存主键。
public int getId() {
return id;
}
//采用hibernate uuid生成器,此时id类型必须改成String类型,不能是int类型,而上面所有的是利用数据库自动分配,则id是int类型
@Id
@GenericGenerator(name="myIdGenerator",strategy="uuid")
@GeneratedValue(generator="myIdGenerator")
public String getId() {
return id;
}
@ManyToOne //此时manytoone是自动生成外键class_id,但使用joincolumn()就可以改变外键名称
@JoinColumn(name="classesid")
public Classes getClasses() {
return classes;
}
//mappedBy在哪一端,哪一端就不维护关系,它成为了关系的被管理端
//向当于hibernate中的inverse=true
//如果采用了泛型,可以不用采用targetEntity属性
@OneToMany(mappedBy="classes",targetEntity=Student.class)
@JoinColumn(name="classesid")
public Set getStudents() {
return students;
}
//因为集合使用泛型所以不再使用targetEntity来指定类型
@ManyToMany //要使用第三方表
@JoinTable(
name="t_user_role",
joinColumns={@JoinColumn(name="user_id")},
inverseJoinColumns={@JoinColumn(name="role_id")} //对端的外键
)
public Set<Role> getRoles() {
return roles;
}
@ManyToMany(mappedBy="roles") //让对端维护,让user端维护
public Set<User> getUsers() {
return users;
}
采用JPA映射每棵类继承树一张表
@Entity
@Table(name="t_animal")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.STRING)
public class Animal {}
@Entity
@DiscriminatorValue(value="B")
public class Bird extends Animal {
@Entity
@DiscriminatorValue(value="P")
public class Pig extends Animal {
采用JPA映射每个类一张表
@Entity
@Table(name="t_animal")
@Inheritance(strategy=InheritanceType.JOINED)
public class Animal {
@Entity
public class Pig extends Animal {
@Entity
public class Bird extends Animal {
采用JPA映射每个具体类一张表
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Animal {
private int id;
private String name;
private boolean sex;
@Id
public int getId() {
return id;
}
@Entity
public class Bird extends Animal {
@Entity
public class Pig extends Animal {
- Hibernate对jpa annotation的支持
- Hibernate对JPA的支持
- hibernate annotation对jpa主键one-to-one映射关系支持的有问题
- hibernate对jpa的支持,自己实现AnnotationSessionFactoryBean,可以对jpa标签进行识别
- 常用的JPA标记 hibernate annotation 参考
- 常用的JPA标记 hibernate annotation 参考
- 常用的JPA标记 hibernate annotation 参考
- Hibernate Annotation -- (JPA)
- 如何扩展 JPA Annotation 以更好的支持 OR Mapping
- Hibernate Annotation使用实例---JPA
- 基于annotation的JPA和hibernate主键生成策略
- Annotation对Servlet的支持(JavaWeb)
- struts2 对annotation(注解)的支持
- Spring对JPA提供的支持
- hibernate annotation中joined继承方式支持jpa规范不完整
- Spring对Hibernate的支持
- spring对Hibernate的支持
- Spring对Hibernate的支持
- [Java]Java栈与堆
- Eclipse安装JavaScript智能提示插件 spket
- UILabel的使用方法
- 快速排序
- SUMMARY OF CHAPTER 1-2
- Hibernate对jpa annotation的支持
- 倒排索引求子串
- Linux文件系统简介
- web页面跳转
- Linux下的硬链接和符号链接
- 六大原则之“接口隔离原则(ISP)“笔记
- Nginx源码分析-内存池
- drools的eclipse插件安装问题
- 道听途说Struts2之8:使用DomainModel属性接收参数