????? 由于視圖沒有主鍵,所以在用hibernate對視圖操作就需要做點處理了,網上搜了一通也沒能找到相關文章,后來突然想到了myeclipse可以幫助生成hibernate的配置文件和對應的pojo代碼。
????? 打開myeclipse,選擇相關的視圖,生成了配置文件和pojo類,發現pojo類生成了兩個,而配置文件卻一個,參看了配置文件和類,明白了是怎么回事。生成的配置文件通過了組合的方式生成,所以會對應兩個類,一個類主要存放id信息,以個類存放對應的字段信息。
????? 下面是生成的類和配置文件:
類:
public class AllTablePb implements Serializable {
?// Fields
?private AllTablePbId id;
?// Property accessors
?public AllTablePbId getId() {
? return this.id;
?}
?public void setId(AllTablePbId id) {
? this.id = id;
?}
}
public class AllTablePbId implements java.io.Serializable {
?// Fields
?private String owner;
?private String tableName;
?private String columnName;
?private String dataType;
?private String pbcCnam;
?private String pbcCmnt;
?// Property accessors
?public String getOwner() {
? return this.owner;
?}
?public void setOwner(String owner) {
? this.owner = owner;
?}
?public String getTableName() {
? return this.tableName;
?}
?public void setTableName(String tableName) {
? this.tableName = tableName;
?}
?public String getColumnName() {
? return this.columnName;
?}
?public void setColumnName(String columnName) {
? this.columnName = columnName;
?}
?public String getDataType() {
? return this.dataType;
?}
?public void setDataType(String dataType) {
? this.dataType = dataType;
?}
?public String getPbcCnam() {
? return this.pbcCnam;
?}
?public void setPbcCnam(String pbcCnam) {
? this.pbcCnam = pbcCnam;
?}
?public String getPbcCmnt() {
? return this.pbcCmnt;
?}
?public void setPbcCmnt(String pbcCmnt) {
? this.pbcCmnt = pbcCmnt;
?}
}
配置文件:
<hibernate-mapping>
?<class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
? <composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
?? <key-property name="owner" type="string">
??? <column name="OWNER" length="30" />
?? </key-property>
?? <key-property name="tableName" type="string">
??? <column name="TABLE_NAME" length="30" />
?? </key-property>
?? <key-property name="columnName" type="string">
??? <column name="COLUMN_NAME" length="30" />
?? </key-property>
?? <key-property name="dataType" type="string">
??? <column name="DATA_TYPE" length="106" />
?? </key-property>
?? <key-property name="pbcCnam" type="string">
??? <column name="PBC_CNAM" length="30" />
?? </key-property>
?? <key-property name="pbcCmnt" type="string">
??? <column name="PBC_CMNT" length="254" />
?? </key-property>
? </composite-id>
?</class>
</hibernate-mapping>
這樣就可以通過AllTablePb.getId()取得相關的信息。
????? 感覺myeclipse的確不錯,特別是對于使用hibernate還不是非常熟練的人來說,通過它可以幫解決不少問題。
????? 通過這樣對視圖的操作,同樣也可以用到對于那些沒有定義主鍵的表,操作方法是一樣的。
????? 呵呵,個人的一點體會,歡迎大家多提意見。