我想实现我自己的ProductImpl
,而不是创建一个扩展的新类ProductImpl
,我想ProductImpl
用我自己的实现替换现有的。
这里的事情是,我在BLC_PRODUCT
表格中另外添加了两列。现在,我想重新设计ProductImpl
包含这两列的类。
所以,我写了一个MyProductImpl
看起来像这样的类。
@Entity
@Table(name = "BLC_PRODUCT")
@Inheritance(strategy = InheritanceType.JOINED)
//multi-column indexes don't appear to get exported correctly when declared at the field level, so declaring here as a workaround
@org.hibernate.annotations.Table(appliesTo = "BLC_PRODUCT", indexes = {
@Index(name = "PRODUCT_URL_INDEX",
columnNames = {"URL","URL_KEY"}
)
})
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="blProducts")
@AdminPresentationClass(populateToOneFields = PopulateToOneFieldsEnum.TRUE, friendlyName = "baseProduct")
@SQLDelete(sql="UPDATE BLC_PRODUCT SET ARCHIVED = 'Y' WHERE PRODUCT_ID = ?")
@DirectCopyTransform({
@DirectCopyTransformMember(templateTokens = DirectCopyTransformTypes.SANDBOX, skipOverlaps=true),
@DirectCopyTransformMember(templateTokens = DirectCopyTransformTypes.SANDBOX_PRODUCT_INVOKE),
@DirectCopyTransformMember(templateTokens = DirectCopyTransformTypes.MULTITENANT_CATALOG)
})
public class MyProductImpl implements Product, Status, AdminMainEntity, Locatable
{
// all the code from ProductImpl pasted here..
@Column(name="MY_CLASS_ID")
@ManyToOne(targetEntity = MyClass.class)
protected MyClass myclass;
@Column(name="MY_CLAZZ_ID")
@ManyToOne(targetEntity = MyClazz.class)
protected MyClazz myclazz;
}
在这里,当我通过管理界面创建新产品时不会调用 setter 方法,但会注入值(除了我的附加字段)。这些附加字段的值实际上应该在程序内部插入,而不是用户直接输入。我怎么能那样做?
提前致谢。