bun*_*112 5 java hibernate blob lazy-loading
我有一个Picture:
public class Picture implements java.io.Serializable {
private byte[] picEncoded;
private String Name;
//etc
Run Code Online (Sandbox Code Playgroud)
是否可以移动byte[]到另一个类而不在 db 中创建物理分隔的表?我需要使用一些继承策略吗?
编辑
单独实体中的 Blob:
pojo :
public class PictureBlob implements java.io.Serializable {
private Integer pictureBlobId;
private byte[] blob;
Run Code Online (Sandbox Code Playgroud)
hbm: :
<class name="PictureBlob" table="PICTURE">
<id name="pictureBlobId" type="int">
<column length="200" name="PictureID"/>
</id>
<property name="blob" type="byte[]" insert="false" update="false">
<column name="PicEncoded" not-null="false"/>
</property>
</class>
Run Code Online (Sandbox Code Playgroud)
图片:
hbm: :
<one-to-one class="PictureBlob" constrained="true" name="pictureBlob" fetch="select"/>
Run Code Online (Sandbox Code Playgroud)
如何插入新图片?
PictureBlob pictureBlob= new PictureBlob();
pictureBlob.setBlob(new byte[]{84,32,22});
Picture p = new Picture();
p.setPictureBlob(pictureBlob);
session.save(p);
Run Code Online (Sandbox Code Playgroud)
插入 blob 值为空的记录。
我认为你可以使用这样的东西:
<class name="Picture">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<component name="pictureBlob" class="PictureBlob">
<property name="pictureBlobId"/>
<property name="blob"/>
<property name="picture"/>
</component>
</class>
Run Code Online (Sandbox Code Playgroud)
这可能需要一些编辑,但想法是这样的:你有一Picture堂课。该类具有type属性name和属性。pictureBlobPictureBlob
该component标签指示组件内的属性映射到同一个表Picture
| 归档时间: |
|
| 查看次数: |
5557 次 |
| 最近记录: |