Power Designer15.1.0
增加unique约束:在columns中找到这个图标[],点击MySQL页面,勾选Unique
Key,再点击确定即可。
reference画直线,tools–>display
preferences–>format–>reference–>modify–>corners选择第一个->确定->Set
as default->点击想要直线化的reference,Ctrl + H即可。
hibernate annotation插入含default值的enum类型 @Column(name = “wonline_state”, columnDefinition = “enum(‘在线’,’离线’,’忙碌’,’请勿打扰’) DEFAULT ‘在线’”, insertable=false) insertable = false,否则无法设置为缺省值。
插入随机的unsigned int的ID
用userinfo.setWuserId(new Random(System.currentTimeMillis()).nextLong() & 0xFFFFFFFFL);
而不是userinfo.setWuserId(new Random(System.currentTimeMillis()).nextLong() & 0xFFFFFFFF);
hibernate delete操作无效
Session session = HibernateUtil.getSession();
session.beginTransaction();
String sql = “delete from w_id_storage where wrandom_id = “ + id;
System.out.println(Common.GetLineInfo() + “ sql -“ + sql);
session.createSQLQuery(sql).executeUpdate();
session.getTransaction().commit();
业务主键(自然主键):在数据库表中把具有业务逻辑含义的字段作为主键,称为“自然主键(Natural Key)”。
逻辑主键(代理主键):在数据库表中采用一个与当前表中逻辑信息无关的字段作为其主键,称为“代理主键”。
Initial SessionFactory creation failed.org.hibernate.AnnotationException: mapped By reference an unknown target entity property: _com.wmw.model.base.BaseWBusines sHour.wSWid in _com.wmw.model.base.BaseWStore.WBusinessHours
private _com.wmw.model.base.BaseWStore wSWid;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “w_s_wid”)
public _com.wmw.model.base.BaseWStore getWSWid() {
return wSWid;
}
等一切设置都正常,找了三个多小时,最后无意中发现原来是hibernate自动生成的getter的问题,getWSWid改成getwSWid即可,才是正确的getter。
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = “w_s_wid”)
public _com.wmw.model.base.BaseWStore getwSWid() {
return wSWid;
}
对于某些外键不想一定要加载的可以将option设置true,这样就不会必须加载了 @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = BaseWDetailedLocation.class, optional = true)
插入数据后hibernate却没有正常获取到数据,即事务没有提交。
Transaction tx = null;
tx = session.beginTransaction(); // …..
session.save(wstore);
tx.commit();
HibernateUtil.closeSession(); // 在执行完后,closeSession即可立即获取到数据。