sword_HAO
2018-01-30 04:17
采纳率: 25%
浏览 5.1k
已采纳

spring data jpa 自动生成数据库表的主键数据怎么定义成varchar类型

@Entity

@Table(name = "contract")

public class Contract implements Serializable {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

@Column(name="contractNo",nullable=false,length=512)

private String contractNo;

@Column(name = "contract_year")

private String contractYear;

}

当我的contractNo定义成String类型是创建表数据的时候会报错,定义成int、Long、Integer类型就不会,要怎么设置才能创建varchar类型的数据表数据

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • Magical*Man 2018-01-30 05:36
    已采纳

    补充上图:GeneratedValue 有两个属性,一个定义自增的策略,适用于基本类型的;另一个属性 generator是String类型的,用于自定义的属性,结合@GenericGenerator注解,GenericGenerator注解有两个属性,一个是name属性定义名称,一个是strategy策略属性,包含有13中策略,其中一个就是uuid策略;使用这个注解时,有一个注意的地方就是generator属性要与name属性的名称一致,并且同时使用两个注解。

    已采纳该答案
    评论
    解决 无用 1
    打赏 举报
  • Magical*Man 2018-01-30 04:46

    使用JPA 生成varchar 类型主键的方法

    评论
    解决 无用
    打赏 举报
  • weixin_39293762 2018-01-30 05:03

    virtualbox4.3.12

    评论
    解决 无用
    打赏 举报
  • 八阿哥看招 2018-01-30 04:34

    首先@Id注解表示这个属性对应数据库中的主键,@GeneratedValue(strategy = GenerationType.AUTO)注解表示这个主键策略是自增的,自增的;
    所以只有数字类型的才可以则增,String是不能自增的。要是你想实现主键为varchar或者String就不要用自增策略,然后主键由代码生成设置
    这个是MySQL数据库的,其他数据库不了解。你可以试试,希望对你有帮助

    评论
    解决 无用 1
    打赏 举报

相关推荐 更多相似问题