粗解hibernate
来源:互联网 发布:淘宝发货地不一样 编辑:程序博客网 时间:2024/06/05 15:01
各个类的基本关系如上图。
配置如下:
@Entity
@Table(name = "user")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class User{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id;
@Column(name = "username") private String username;
@Column(name = "password") private String password;
@OneToMany(mappedBy = “userRole”,fetch = FetchType.LAZY)
private Collection<UserRole> userRoles;//构造空的构造器public User(){}//此处省略所有的getter和setter方法}注解解释:
@Entity标注该类是一个实体类(类分为实体类,边界类和控制类详见http://baike.baidu.com/view/1545941.htm)
@Table(name = “user”)该类对应数据库中的表。
@Cache(strategy = GenerationType.IDENTITY)定义缓存策略,缓存的方式有四种,分别为:
CacheConcurrencyStrategy.NONE
CacheConcurrencyStrategy.READ_ONLY,只读模式,在此模式下,如果对数据进行更新操作,会有异常;
CacheConcurrencyStrategy.READ_WRITE,读写模式在更新缓存的时候会把缓存里面的数据换成一个锁,其它事务如果去取相应的缓存数据,发现被锁了,直接就去数据库查询;
CacheConcurrencyStrategy.NONSTRICT_READ_WRITE,不严格的读写模式则不会的缓存数据加锁;
CacheConcurrencyStrategy.TRANSACTIONAL,事务模式指缓存支持事务,当事务回滚时,缓存也能回滚,只支持JTA环境。@Id标注该字段是id
@GeneratedValue(strategy = GenerationType.IDENTITY)注解id的生成策略,有四种生成策略——TABLE使用特定的数据库表格保存主键。
SEQUENCE根据底层数据库的序列生成主键,前提是数据库支持序列化。IDENTITY自动生成。AUTO程序控制生成。
@OneToMany(mappedBy = "userRole")mappedBy指向维护端的表,也就是说userRole做级联操作。同时就不再创建第三张表。
UserRole端的代码是:@ManyToOne @JoinColumn(name = “user_id”)
- 粗解hibernate
- hibernate
- Hibernate
- Hibernate
- Hibernate
- hibernate
- hibernate
- Hibernate
- Hibernate
- Hibernate
- hibernate
- Hibernate
- Hibernate
- hibernate
- hibernate
- hibernate
- Hibernate
- Hibernate
- :如何用C#在Asp.net中实现打开新网页而不关闭当前页
- Android ViewPager使用详解
- 自定义ImageView点击缩放
- DOC命令学习
- Java学习笔记----------集合Set
- 粗解hibernate
- 数据库如何创建一个完全一样的表
- java中的IO整理
- WinExec(用来打开指定exe文件)
- 简单明了 c#web 导出 excel,word,pdf, 只包含了文本导出。
- Action bar
- Swing 透明窗体实现
- Discuz 可以进主页,但是进入点击版块和帖子信息的时候就会出现http404错误
- ORA-12154: TNS: 无法解析指定的连接标识符---原来是tnsnames.ora多了空格