首先得承认我学Hibernate这东西时间还比较短,了解太浅,遇到这个问题的确不知道怎么处理,但是在网上搜索页没有找到资料,多亏 jinnianshilongnian 老兄给我了一个链接,看到,的确在Hibernate中有很简单的处理方式,在这里表示感谢。
真的是活到老学到老。而且,这也坚定了我自顶向下的设计理念,我坚持先从业务分析中得到对象再考虑数据库的思路是正确的。
我把链接上的解决方式贴在这里,以备自己将来查看和学习。
JAVA
public class Brand {
private Integer id; // unique ID per brand
private Integer languageId; // unique ID per language, always set to the current language
private String enabled; // flag, true if we display this to html
private Integer ranking; // ranking to display in html
private String name; // the translated name of this brand
// .... Getters and Setters
}
SQL
brand
{
brand_id // int, auto_increment, primary key
ranking // int
enabled // char(3)
}
brandtext
{
brand_id // int, foreign key
language_id // int, foreign key
name // varchar(255), a translation of this brand's name
}
映射文件:
<hibernate-mapping package="foobar"> <class name="Brand" table="brand"> <id name="id" column="brand_id" type="int"> <generator class="identity"/> </id> <property name="enabled" type="string"/> <property name="ranking" type="int"/> <join table="brandtext" inverse="true" > <key column="brand_id" on-delete="cascade"/> <property name="languageId" column="language_id" type="int"/> <property name="name" type="string"/> </join> </class> </hibernate-mapping>