`
smiky
  • 浏览: 257738 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

标记(hibernate查询无主键表出现null值)

阅读更多

hibernate在查询无主键表时,当查询的某行有某个字段出现空值时,那么返回的这一行的结果对象将会是null

List<SsSysIpFilterId> ids = hibernateTemplate.find("s.id from SsSysIpFilter s")

 ArrayList的add方法在添加一个null值时不会做任何判断,它会将null添加,并且长度加1,下面是它的源码

public boolean add(E o) {
	ensureCapacity(size + 1);  // Increments modCount!!
	elementData[size++] = o;
	return true;
    }

 所以当你用hibernate来查询无主键表,可能出现这种情况:

返回的list里面长度不为0,但是list.get(0)得到的对象却是null,此时进行任何操作就会NullPointerException

 

 

看样子对无主键表操用时用hibernate查询与更新都会有问题啊

 

分享到:
评论
2 楼 smiky 2012-11-07  
xuke6677 写道
您好,请问下我对无主键的表做全查询的时候,可以查出有多少条记录,但查询某个属性时出现java.lang.NullPointerException。数据库中的数据都是完整的,没有空值.

好久没搞JAVA了,hibernate早忘光光了,我不能确定你这是什么原因,你打个断点看下查出来的信息是否是null,只有这种情况才可能出现空指针,我这篇文章只是说可以将null插进表查出来也是null,那么在查询属性时就会出现空指针了
1 楼 xuke6677 2012-11-06  
您好,请问下我对无主键的表做全查询的时候,可以查出有多少条记录,但查询某个属性时出现java.lang.NullPointerException。数据库中的数据都是完整的,没有空值.

相关推荐

    Hibernate DOC 中文文档

    通过@Entity注解标记Java类为实体类,@Table注解指定对应的数据库表,@Id注解标识主键,其他字段可以通过@Column注解进行字段映射。还可以使用@ManyToOne、@OneToMany、@OneToOne、@ManyToMany等注解定义关联关系。 ...

    hibernate-mapping参数详解

    10. `discriminator-value`:在多态映射中,用于区分不同子类的值,可以是null或非null。 11. `mutable`:默认为`true`,表示类的实例是可变的。如果设置为`false`,则对象被视为不可变,这会影响Hibernate的行为。...

    hibernate笔记

    - **@Entity**: 标记一个 Java 类为数据库表的实体。 - **@Table**: 定义实体对应的数据库表名。 - **@Id**: 标识主键字段。 - **@GeneratedValue**: 自动生成主键策略,如 `GenerationType.IDENTITY` 或 `...

    Hibernate 中文api文档

    2. **属性映射**:使用`@Id`标记主键,`@GeneratedValue`控制主键生成策略。其他字段可以通过`@Column`注解进行映射。 3. **关系映射**:包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多...

    hibernate annotation 中文文档

    - **4.1.2 内建约束**:Hibernate 验证器内置了一些常见的约束注解,如 `@NotNull`、`@Size` 等。 - **4.1.3 错误信息**:可以通过 `@Constraint` 注解的 `message` 属性来定义约束违反时的错误消息。 - **4.1.4 ...

    java利用hibernate连接数据库

    1. 创建实体类:定义一个Java类,该类代表数据库中的一个表,使用注解`@Entity`标记为Hibernate实体。 2. 属性映射:使用`@Id`标记主键,`@Column`定义字段名,`@GeneratedValue`指定主键生成策略。 3. 映射文件:可...

    springboot利用jpa连接hibernate用法2

    如果实体有@Id注解且值为null,Hibernate会自动生成主键。 - **读取(Read)**: 可以通过`findById()`获取单个实体,`findAll()`获取所有实体,或者使用自定义的JPA查询方法。 - **更新(Update)**: 修改实体属性...

    hibernate官方入门教程 (转载)

    3. **实体类**: 实体类是映射到数据库表的Java类,通常包含主键和业务属性,使用@Entity和@Id等注解进行标记。 4. **持久化类和表的映射**: 使用XML文件(hibernate-mapping.xml)或Java注解(@Table, @Column等)...

    Hibernate全部注解

    ### Hibernate 全部注解详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,允许开发人员...此外,Hibernate 还提供了更多的高级特性,如关联映射、查询语言等,有兴趣的读者可以进一步学习和探索。

    hibernate 中文注解

    - **无注解之属性的默认值:** 如果没有显式使用注解,Hibernate会默认将类的属性映射到表中的列。 - **映射主键属性:** 主键映射通过`@Id`注解实现。 - **映射继承关系:** - **每个类一张表:** 每个子类对应...

    jap+hibernate4实现

    3. **定义实体类**:创建Java类并使用`@Entity`注解标记为JPA实体,使用`@Table`指定数据库中的对应表,以及`@Id`定义主键字段。 4. **配置数据访问对象(DAO)**:创建DAO接口和实现类,使用JPA提供的`...

    hibernate教程

    实体Bean是Hibernate中非常重要的概念之一,用于表示数据库中的表,并通过注解来映射其字段与数据库表中的列。 ##### 3.1 简介 实体Bean是表示数据库表的对象形式,在Hibernate中通过注解进行配置,可以实现对象与...

    Hibernate全部笔记

    1. **实体类**:使用@Entity注解定义,@Id注解标记主键字段,@GeneratedValue注解处理主键生成策略。 2. **属性映射**:使用@Column注解将实体类属性映射到数据库列。 3. **关系映射**:@OneToOne、@OneToMany、@...

    Hibernate_实体类_注解_大全

    1. `@Entity`: 此注解用于标记一个Java类为Hibernate实体类,它代表数据库中的一个表。`name`参数是可选的,如果不指定,实体类的名称会被用作表名。例如,如果一个类名为`TestResult`,默认情况下它将映射到名为`...

    Hibernate annotation

    【Hibernate验证器】`Hibernate Validator`是Hibernate提供的一个验证框架,它允许在实体Bean上添加如`@NotNull`,`@Size`等验证规则,确保数据的正确性。 【与XML的结合】尽管注解提供了便利,但有时仍需要通过XML...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     C.1 创建带有@hibernate标记的Java源文件  C.2 建立项目的目录结构  C.3 运行XDoclet工具 附录D 发布和运行netstore应用  D.1 运行netstore所需的软件  D.2 netstore应用的目录结构  D.3 安装SAMPLEDB...

    hibernate常见错误解决方案

    此异常表明一个标记为不可为空的属性引用了一个null或瞬态值。 **解决方法:** - 确认所有标有`not-null`的属性都有默认值或在保存前已被赋值。 - 如果使用注解方式,可以使用`@NotNull`或`@NotEmpty`等注解来替代...

    Hibernate注解.docx

    在Java的持久化框架Hibernate中,注解的使用极大地简化了对象关系映射的过程,使得开发者无需编写XML映射文件,就能实现类与数据库表之间的映射。Hibernate不仅支持Java Persistence API (JPA)的标准注解,还针对JPA...

Global site tag (gtag.js) - Google Analytics