1

如何无缝本地化实体?我有一个带有一些本地化字段的对象(实体),我想以这种方式访问​​这些本地化字段:entity.getField()。

本地化基于客户端上下文。

为了实现这一点,我将瞬态字段用于本地化字段,并在 onLoad 方法中自己的 Hibernate EmptyInterceptor 实现的帮助下,我正在使用本地化值设置此字段。本地化值保存在单独的表中。它正在工作,但我认为应该有更好的解决方案。

@Entity 
public class Card {

    private Long id;

    @Transient
    private String name;



}

@Entity
public class LocalizedCard{

    @Id
    private Long id;
    @ManyToOne
    private Card card;
    private Language language;
    private String localisedName;

}

and the interceptor

public class MyInterceptor  extends EmptyInterceptor {


    @Override
    public boolean onLoad(
            Object entity,
            Serializable id,
            Object[] state,
            String[] propertyNames,
            Type[] types) {


        if (entity instanceof Card) {
              Card c = (Card) entity;
c.setName(service.getLocalisedCardName());
return true;
            }



        return false;
    }
}
4

0 回答 0