@Id 和 @column 注解 使用注意
当@Id写字啊 field 上时 ,如过 把 @column 写在 getter 方法上 ,会出现错误 或者不起作用
Unknown column 'gecompanys0_.sourcec' in 'field list'; sourcec 为 field 的名称, 数据库名称为 sourceName
当时如果把 @column 也写在 field 上 时,就可以正常查询了 。。
同样如果把 @Id 注解到 getter 方法上,而把 @column 注解到 field 上,也会同样报上述错误。。
所以建议 统一 注解 的地方。。建议都注解到getter 方法上。
原因: 使用Annotations形式的配置方式,默认的访问形式由@Id标记放置的位置决定,当@Id标记在属性上声明,而不是在getter方法上,则所有的其它属性默认采用属性访问形式(即不通过getter和setter方法,直接访问属性)
以下来自 新浪博客 (commandingofficer)感谢原作者 http://blog.sina.com.cn/s/blog_616e189f0100zrfn.html
1. 属性访问的类型和特点(4.4.1)
持久化引擎可以直接或者通过访问器(即get和set方法)访问属性。Hibernate中,使用XML配置形式,通过default-access设置默认的访问形式,可以有四种选项,default-access=”field|property|noop|custom.Class”。而使用Annotations形式的配置方式,默认的访问形式由@Id标记放置的位置决定,当@Id标记在属性上声明,而不是在getter方法上,则所有的其它属性默认采用属性访问形式(即不通过getter和setter方法,直接访问属性)。这种方式是JTA默认的。
当然,Hibernate提供了一种更灵活的方式,使用@org.hibernate.annotations.AccessType可以更改这种默认配置,策略如下:
(1)如果AccessType在类(实体)级别设置,类中的所有属性都使用这个默认访问方式,除非某个属性在其属性或者getter方法上重写了访问方式,重写访问方式将覆盖默认方式。但是类级别的设置将会重写@Id方式的默认访问方式。
(2)如果实体默认设置或者显示设置了属性访问,在属性上设置AccessType(“property”),更改访问方式为getter/setter
@Id 和 @column 注解 使用注意的更多相关文章
- JPA的Column注解总结
就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系. 该注解的定义如下: @Target({METHOD, FIELD}) @Ret ...
- Spring Boot集成JPA的Column注解命名字段无效的问题
偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userNam ...
- SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑
习惯使用jpa操作对象的方式,现在用mybatis有点不习惯. 其实是懒得写SQL,增删改查那么简单的事情你帮我做了呗,mybatis:NO. 没办法,自己搞喽! 这里主要是实现了通过代码自动生成my ...
- SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap
其实我一点都不想用mybatis,好多地方得自己写,比如这里. 使用mybatis要写大量的xml,烦的一批.最烦人的莫过于写各种resultmap,就是数据库字段和实体属性做映射.我认为这里应该是m ...
- Column注解的的RetentionPolicy的属性值是RUTIME,这样注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理
1.Column注解的的RetentionPolicy的属性值是RUTIME,这样注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理 2. 自定义注解: 使用@interfac ...
- JPA @Id 和 @GeneratedValue 注解详解
JPA @Id 和 @GeneratedValue 注解详解 @Id: @Id 标注用于声明一个实体类的属性映射为数据库的主键列.该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上 ...
- Spring Data JPA @Column 注解无效 打出的语句有下划线
最近再写一个Restful API的小例子,遇到这样一个问题,在Spring Boot 下使用CrudRepository,总是提示如下错误: Caused by: java.sql.SQLSynta ...
- @Column 注解详情
@Column标记表示所持久化属性所映射表中的字段,该注释的属性定义如下: @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface ...
- springboot系列五、springboot常用注解使用说明
一.controller相关注解 1.@Controller 控制器,处理http请求. 2.@RespController Spring4之后新加的注解,原来返回json需要@ResponseBod ...
随机推荐
- MVC,MVP 和 MVVM 模式如何选择?
转摘:http://www.linuxidc.com/Linux/2015-10/124622.htm 前言 做客户端开发.前端开发对MVC.MVP.MVVM这些名词不了解也应该大致听过,都是为了解决 ...
- OpenACC 计算构建内的自定义函数
▶ 使用 routine 构件创建的自定义函数,在并行调用上的差别 ● 代码,自定义一个 sqab 函数,使用内建函数 fabsf 和 sqrtf 计算一个矩阵所有元素绝对值的平方根 #include ...
- 微擎框架小程序 uitl
获取用户信息 util.getUserInfo(callback) 获取成功后会将用户信息写入到缓存中,如果指定了回调函数,则会调用回调函数 callback 获取成功后的回调函数 示例 var ap ...
- 前端-CSS-2-选择器
基本选择器 首先来说一下,什么是选择器.在一个HTML页面中会有很多很多的元素,不同的元素可能会有不同的样式, 某些元素又需要设置相同的样式,选择器就是用来从HTML页面中查找特定元素的,找到元素之后 ...
- request error: Connection aborted.', error(113, 'No route to host')
from: https://superuser.com/questions/720851/connection-refused-vs-no-route-to-host/720860 "Con ...
- JAVA WEB开发中的会话跟踪
常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. Http协议是一种无状态的协议,一旦数据交换完毕,客 ...
- Spring Boot Unregistering JMX-exposed beans on shutdown
创建springboot项目运行的时候报这个错误Unregistering JMX-exposed beans on shutdown,搜索发现第一条是: Spring boot 嵌入的tomcat不 ...
- HQL中的Like查询需要注意的地方
public List getOrgan(String organCode, String organName) { String hsql; List list; if (organCo ...
- Haskell语言学习笔记(29)CPS
CPS (Continuation Passing Style) CPS(延续传递风格)是指函数不把处理结果作为返回值返回而是把处理结果传递给下一个函数的编码风格. 与此相对,函数把处理结果作为返回值 ...
- Hibernate迫切左外连接和迫切内连接
•迫切左外连接: •LEFT JOIN FETCH 关键字表示迫切左外连接检索策略. –list() 方法返回的集合中存放实体对象的引用, 每个 Department 对象关联的 Employee ...