gpt4 book ai didi

mysql - 第 1 行第 'column name' 列的数据被截断

转载 作者:行者123 更新时间:2023-11-29 14:08:15 25 4
gpt4 key购买 nike

这是我的模型类属性

@Column(name = "createdate")  
@Type(type="long_timestamp")
private Date creationDate;

这是我的类型定义

@TypeDef(  
name="long_timestamp",
typeClass = com.x.LongTimestampType.class
),

请引用我的LongTimestampType.java

public class LongTimestampType extends TimestampType {


@Override
public String objectToSQLString(Date value, Dialect dialect)
throws Exception {
return "" + ((Date) value).getTime();
}

@Override
public Object get(ResultSet rs, String index) throws HibernateException, SQLException {
return new Date(rs.getLong(index));
}

@Override
public void set(PreparedStatement ps, Date value, int index, SessionImplementor sessionImplementor) throws HibernateException, SQLException {
System.out.println("set Date as BIGINT into Prepared Statement :: " + ((Date)value).getTime());
ps.setLong(index, ((Date)value).getTime());
}

@Override
public String getName() {
return "long_timestamp";
}

public int[] sqlTypes() {
return new int[] { Types.BIGINT };
}

/* public int sqlTypes() {
return Types.BIGINT;
}*/
}

这是我的 mySql 表列

createdate  bigint(20) NULL

我保存这个对象的java代码是

entityManager.persist(object);

我的问题是,当我尝试将对象保存到表中时,它会抛出:java.sql.BatchUpdateException:第 1 行的列“createdate”的数据被截断
即使我也将 null 设置为 createDate 。请给出解决此问题的方案

最佳答案

也许

public String objectToSQLString(日期值,方言方言)

应该是

public String objectToSQLString(对象值,方言方言)

否则该方法不会被正确覆盖

关于mysql - 第 1 行第 'column name' 列的数据被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com