这里给各位小伙伴提醒一下,还记得主键生成器吗,大家发现用@EmbeddedId时,同样是自己输入的主键数据,为什么没有报错呢,个人回顾了一下主键生成器发现,其strategy默认值好像就是assigned,所以不用大家手动指定,直接可以使用的
2016-09-22
我回来鞭尸一下Metadata metadata=new MetadataSources(registry).buildMetadata();
SchemaExport export=new SchemaExport();
export.create(EnumSet.of(TargetType.DATABASE), metadata);
这几句话可以不用写的,这是命令行语句,数据表会在你程序运行时创建(即sessonfactory调用时创建),大家就不要太过于纠结了
SchemaExport export=new SchemaExport();
export.create(EnumSet.of(TargetType.DATABASE), metadata);
这几句话可以不用写的,这是命令行语句,数据表会在你程序运行时创建(即sessonfactory调用时创建),大家就不要太过于纠结了
2016-09-22
我又来刺激老师了,很明显,主键设置成string类型,并且@GeneratedValue(strategy=GenerationType.AUTO)这么设置是可以生成表的,,不过会生成两张表,其中一张是序列的表,只是不能手动赋值罢了,还有就是string作为主键并不用@Column(length=8)设置长度,实测并没有限制长度,只是数据库开销大了点,也是可以实现建表的
2016-09-22
不行,本王又来给评论了,坑爹呀,谁说MySQL不支持catalog的,坑呀,mysql5.7支持catalog但是是不支持schema的,我去,上面的评论都别看了,前面没有限定名称和什么指定数据库毛线关系都没有
2016-09-22
再接上面,这里(@Table(name="st_student",schema="hibername",catalog="h"))为什么不是(hibernate,st_student)呢,查一下hibernate。.cfg.xml看看你是否指定了数据库,如果指定了schema="hibername"这行你怎么改都不会生效的(本人推测,如有不对,请私信更正,共同进步)
2016-09-22
接上面,而且(数据库.表名)的形式,是根据catalog指定的,例如(@Table(name="st_student",schema="hibername",catalog="h")),在建表语句中会出现(h.st_student)并不是(hibernate,st_student).因为不支持catalog,下面会出现jdbc报错
2016-09-22
mysql中catalog是无法使用的,但是呢,只设置schema的话,建表语句中并不会生成(数据库.表名)形式,只会直接生成表名,下面就是要注意的了,如果写了catalog的话(mysql不支持的),你会发现建表语句生成了(数据库.表名)的形式,不过下面就会报错了
2016-09-22
大家按我写的新版本用的方法吧((hibernate5.5)把第一部分和第二部分链接起来就可以了),老师的方法已经无迹可寻了,
2016-09-22
/*第二部分*/
Metadata metadata=new MetadataSources(registry).buildMetadata();
SchemaExport export=new SchemaExport();
export.create(EnumSet.of(TargetType.DATABASE), metadata);
Metadata metadata=new MetadataSources(registry).buildMetadata();
SchemaExport export=new SchemaExport();
export.create(EnumSet.of(TargetType.DATABASE), metadata);
2016-09-22
/* 第一部分*/
configuration = new Configuration().configure();
registry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionfactory = configuration.buildSessionFactory();
configuration = new Configuration().configure();
registry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionfactory = configuration.buildSessionFactory();
2016-09-22
@GenerateValue,我设置成auto, 他新建立了一个链表结构的 table ...
2016-09-12