如何解决如何使用hql在varchar2字段中写入枚举值?
有一个带有spring-batch依赖关系的Spring-boot2应用程序用于迁移数据
我有映射到oracle表的实体
create table User (
pr_key varchar2(36) primary_key,name varchar2(50) null,surename varchar2(50) null,age varchar2(50) null,status varchar2(50) null,xml clob null
);
@Entity
@Audited
@Table(name = "User")
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@Getter
@Setter
@Access(AccessType.FIELD)
public class User{
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid",strategy = "uuid2")
@Column(name = "PR_KEY")
private String prKey;
@Column(name="NAME")
private String name;
@Column(name="SURNAME")
private String surname;
@Column(name="AGE")
privage String age;
@Column(name = "status")
@Enumerated(EnumType.STRING)
private STATUS status;
@Lob
@Column(name = "xml")
private String xml;
}
我在用户表中使用spring-batch迁移状态。我有读者-处理器-作家。 因此,用户具有枚举字段,而表具有varchar2(50)字段,并且在尝试使用此sql时会出现异常:
writer.setSql("update user set xml=:xml,status=:status where pr_key=:prKey");
但是尝试更新其他不同字段(列格式错误)时也不例外
热修复它并设置状态字符串类型吗?
我尝试使用:status,:status:name,:status.name,:status.name(),但不起作用
我的春季批作家:
@StepScope
public JdbcBatchItemWriter<User> statusWriter() {
JdbcBatchItemWriter<User> writer = new JdbcBatchItemWriter<>();
writer.setDataSource(mainDataSource);
writer.setSql("update USER set status=:status,xml=:xml where pr_key=:prKey");
writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>());
writer.afterPropertiesSet();
return writer;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。