当@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 注解 使用注意的更多相关文章

  1. JPA的Column注解总结

    就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系. 该注解的定义如下: @Target({METHOD, FIELD}) @Ret ...

  2. Spring Boot集成JPA的Column注解命名字段无效的问题

    偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userNam ...

  3. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑

    习惯使用jpa操作对象的方式,现在用mybatis有点不习惯. 其实是懒得写SQL,增删改查那么简单的事情你帮我做了呗,mybatis:NO. 没办法,自己搞喽! 这里主要是实现了通过代码自动生成my ...

  4. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap

    其实我一点都不想用mybatis,好多地方得自己写,比如这里. 使用mybatis要写大量的xml,烦的一批.最烦人的莫过于写各种resultmap,就是数据库字段和实体属性做映射.我认为这里应该是m ...

  5. Column注解的的RetentionPolicy的属性值是RUTIME,这样注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理

    1.Column注解的的RetentionPolicy的属性值是RUTIME,这样注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理 2. 自定义注解: 使用@interfac ...

  6. JPA @Id 和 @GeneratedValue 注解详解

    JPA @Id 和 @GeneratedValue 注解详解   @Id: @Id 标注用于声明一个实体类的属性映射为数据库的主键列.该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上 ...

  7. Spring Data JPA @Column 注解无效 打出的语句有下划线

    最近再写一个Restful API的小例子,遇到这样一个问题,在Spring Boot 下使用CrudRepository,总是提示如下错误: Caused by: java.sql.SQLSynta ...

  8. @Column 注解详情

    @Column标记表示所持久化属性所映射表中的字段,该注释的属性定义如下: @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface ...

  9. springboot系列五、springboot常用注解使用说明

    一.controller相关注解 1.@Controller 控制器,处理http请求. 2.@RespController Spring4之后新加的注解,原来返回json需要@ResponseBod ...

随机推荐

  1. UVA408-水的深度的伪随机数

    题意: 公式sed(x) = (sed(x-1)+step)%mod,初始值sed(x)=0,输入step和mod,求解这个公式能不能生成0,1,2,3,4,5.....mod-1 解法:暴力枚举,直 ...

  2. OpenACC 异步计算

    ▶ 按照书上的例子,使用 async 导语实现主机与设备端的异步计算 ● 代码,非异步的代码只要将其中的 async 以及第 29 行删除即可 #include <stdio.h> #in ...

  3. 3. HashMap和JSONObject用法

    <%@page import="net.sf.json.JSONObject"%><%@page import="java.util.List" ...

  4. leetcode122

    public class Solution { public int MaxProfit(int[] prices) { var list = new List<KeyValuePair< ...

  5. redis、memcache和mongodb各自的优缺点是什么

    redis.memcahce 比较相似,但与 mongodb 完全不同,几乎没有可比性. 总的来说 redis/memcache 是基于内存的,讲究的是性能,多用作缓存层,比如说存放session.而 ...

  6. spring-boot + mybatis +pagehelper 使用分页

    转自:https://segmentfault.com/a/1190000015668715?utm_medium=referral&utm_source=tuicool 最近自己搭建一个sp ...

  7. 3.mybatis实战教程(mybatis in action)之三:实现数据的增删改查

    转自:https://blog.csdn.net/tangruyi1992/article/details/52583910 前面已经讲到用接口的方式编程.这种方式,要注意的一个地方就是.在User. ...

  8. c++builder XE7 C++11 C++0x 新语法

    Non-static data member initializers 非静态成员变量初始化变得简单,这个XE7 64位编译成功,32位还是不支持 As a simple example, struc ...

  9. 常用html设置:

    省略 居中 1. 省略 ellipsis: text-overflow:ellipsis: 要求容器必须是固定的,要不然无法做省略. table的省略 table{ table_layout:fixe ...

  10. [转]Gulp思维 —— Gulp高级技巧

    感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨论了一些使用gulp.js时常踩的坑,以及一些更加高级和定制化的插件和流的使用技巧. 基本任务 gulp的基 ...