Entity
首先我们聊聊在hibernate中 @Entity 注解为数据对应的一张表,如果对应的数据是数据库的一个视图又是怎么样的呢, 那么需要加上@Immutable 注解防止修改 参考:https://www.thoughts-on-java.org/hibernate-tips-map-view-hibernate/
那么 这样我们给出的entity 概念和hibernate类似,只要是 <select> 中的 resultType 均为 entity, 因为这个model 与数据库select 结果一一映射。
Table
首先它是一个特殊的Entity,请让这个model 不要继承其他model,就让其与数据库的表一一映射即可。
mapUnderscoreToCamelCase
这个是一个mybatis 的一个设置,比如我们Class 使用的命名规范是驼峰,那么数据库一般我们使用的是下划线。注意:在所有的mybatis-dynamic-query 默认均遵循这个规则,如果想要改变可以使用 @Column自定义一一对应关系。
Mybatis Config:
<settings>
<setting name="lazyLoadingEnabled" value="false"/>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
JAVA Code:
Class Student{
// camel case.
private Integer studentId;
// get set..
}
DB Table:
CREATE TABLE student{
// underscore
student_id INT PRIMARY KEY,
}