以前使用Hibernate 使用了 以下代码:
SQLQuery SqlQuery = session.createSQLQuery(sql.toString()); // 设置值 SqlQuery.addScalar("contractid", Hibernate.STRING); // .....
现在hibernate 版本升级了,就报错了,现在是下面的代替方法:
// 用这里面的警醒代替 StandardBasicTypes.CHARACTER_ARRAY StringType.INSTANCE
两者区别不大,StandardBasicTypes 里面定义了全是 各种Type 的静态属性,其实是一个东西:
public class StandardBasicTypes { 040 /*** 041 * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#BIT BIT}. 042 * 043 * @see BooleanType 044 */ 045 public static final BooleanType BOOLEAN = BooleanType.INSTANCE; 046 047 /*** 048 * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#INTEGER INTEGER}. 049 * 050 * @see NumericBooleanType 051 */ 052 public static final NumericBooleanType NUMERIC_BOOLEAN = NumericBooleanType.INSTANCE; 053 054 /*** 055 * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#CHAR CHAR(1)} (using 'T'/'F'). 056 * 057 * @see TrueFalseType 058 */ 059 public static final TrueFalseType TRUE_FALSE = TrueFalseType.INSTANCE; 060 061 /*** 062 * The standard Hibernate type for mapping {@link Boolean} to JDBC {@link java.sql.Types#CHAR CHAR(1)} (using 'Y'/'N'). 063 * 064 * @see YesNoType 065 */ 066 public static final YesNoType YES_NO = YesNoType.INSTANCE; 067 068 /*** 069 * The standard Hibernate type for mapping {@link Byte} to JDBC {@link java.sql.Types#TINYINT TINYINT}. 070 */ 071 public static final ByteType BYTE = ByteType.INSTANCE; 。 。 。 }
除了有StringType.INSTANCE ,还有很多类型。在org.hibernate.type 下。个人建议还是使用 StandardBasicTypes
相关推荐
从Hibernate 3.2开始,支持使用Java注解来代替XML映射文件,简化配置。例如: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private ...
随着Java注解的流行,Hibernate也支持使用注解来代替XML进行映射。在`HbmUser`类中,我们可以看到如下注解: ```java @Entity @Table(name = "USER") public class HbmUser { @Id @GeneratedValue(strategy = ...
`VARCHAR2` 在 Oracle 中代替 `VARCHAR`,而 `NVARCHAR2` 用于 Unicode 字符串。因此,在实际应用中,开发者需要根据所使用的数据库系统进行适当的调整。 **3. 使用 Hibernate 数据类型** 在 Hibernate 中,数据...
此时可以考虑使用`merge`方法来代替`update`方法。 ```java public void updateCity(MthCity city) throws DataAccessException, BaseException { baseHibernateDAO.merge(city); // 合并对象并更新 } ``` - `...
在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将通过一个具体的“一对一”关系的例子来帮助初学者理解Hibernate...
Hibernate 3.3.2开始支持使用Java注解来代替XML进行对象关系映射。开发者可以直接在类和属性上使用特定的Hibernate注解,比如`@Entity`、`@Table`、`@Id`、`@Column`等。以下是一个使用注解的User类示例: ```java ...
但在现代的JPA(Java Persistence API)中,我们通常使用注解来代替XML配置。 四、操作一对多关系 1. 插入数据:当插入多方实体(如Employee)时,如果已经存在一方实体(如Department),则可以直接设置引用。...
JPQL是JPA中用于查询实体的主要语言,它基于SQL,但使用实体类名和属性名代替表名和列名。例如,查找名字为“张三”的顾客: ```java Query query = em.createQuery("SELECT c FROM Customer c WHERE c.name = :...
这种一对一关联的方式比较特殊,它在两个表中都添加了一个外键,同时在配置文件中使用`<many-to-one>`代替`<one-to-one>`。虽然这种方式在官方文档中未明确提及,但在实践中也是可行的。 **配置文件** (`Course.hbm...
你可以用它来代替 SQL 进行复杂的查询。例如: ```java List<HelloWorld> findAllByMessageStartsWith(String prefix) { return entityManager.createQuery( "SELECT h FROM HelloWorld h WHERE h.message LIKE :...
1", hints = @QueryHint(name = "org.hibernate.cacheable", value = "true")) User findByEmail(String email); ``` #### 七、其他特性 1. **规范**:可以通过 `Specification` 接口来构建复杂的查询条件。 ...
包括合理选择数据类型,如使用VARCHAR代替CHAR节省空间;设计合适的索引以提高查询速度,例如为主键和经常用于搜索的字段创建唯一索引;以及避免全表扫描,使用JOIN操作时要谨慎,以防止性能下降。 此外,事务管理...
然而,泛型DAO也存在局限性,例如无法完全代替ORM框架(如Hibernate),在处理复杂的查询和事务管理时可能显得力不从心。在实际项目中,开发者通常会结合使用泛型DAO和其他设计模式,如Repository模式,以达到最佳的...
- **支持类型**:`byte`、`short`、`char`、`int`以及`String`类型。 - **限制**:不支持`long`和`float`、`double`等类型。 #### 单例模式的实现方式 - **私有构造函数**:确保外部无法直接通过`new`关键字创建...