Hibernate中left join、inner join以及left join fetch区别

一:内连接查询(显示和隐式)

内连接查询:内连接,自连接。

显示内连接(推荐写法):.
SELECT <selectList>
FROM A [INNER] JOIN B ON A.列 = B.列
隐式内连接
SELECT <selectList>
FROM A ,B WHERE A.列 = B.列

②自连接

把一张表看成两张来做查询.一定要取别名

二者效果一样,写法不同。

二:外连接(左外连接,右外连接,全连接(mysql不支持)

语法格式
SELECT <selectList>
FROM A LEFT/RIGHT [OUTER] JOIN B
ON (A.column_name = B.column_name)];

三:join fetch

一个"fetch"连接允许仅仅使用一个选择语句就将相关联的对象或一组值的集合随着他们的父对象的初始化而被初始化。

四:XmlRootElement

将类或枚举类型映射到 XML 元素。JAXB中的注解,用来根据java类生成xml内容。

五:hibernate 注释 唯一键约束 uniqueConstraints

@Table 注解包含一个schema和一个catelog 属性,使用@UniqueConstraints 可以定义表的唯一约束。
如果是联合约束就用下面这种
@Table(name="tbl_sky",
uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})})
如果是单一字段约束可以用
@Table(name="tbl_sky",
uniqueConstraints = {@UniqueConstraint(columnNames="month")})

六:@Transient

该注解,是hibernate、morphia等框架的注解。
实体类中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient这个注解了。
将该注解添加到定义该字段的头部即可

 

posted on 2017-08-07 10:42  好好学习,天天睡觉  阅读(432)  评论(0)    收藏  举报