有这样一个表结构。
@Table(name="FOO")
public class Foo {
@Id
@GeneratedValue
private Long id;

@Column(name="code")
private String code;

@Column(name="serial_no")
private String serialNo;

@Column(name="content")
private String Content; @Column(name="regist_name")
private String registName;

@Column(name="regist_date")
private Date registDate;
...
FOO
-----------
id    code    serial_no    content    regist_id    regist_date
1     1001    00001        Apple      test         20130101
2     1001    00001        Banana     test         20130102
3     1001    00001        Orange     test         20130104
4     1002    00001        TV         test         20130101
.....MASTER
------------
id    code    name
1     1001    Fruit
2     1002    ELECTRICAL我想在获取Foo的时候,多获得两个内容
1. 从MASTER表中获得code相应的name
2. previous content,即code,serial_no相同上一个regist_date的content。
   例如,对于id=3的数据,previous content=Banana。对于第一个问题,我使用Formula应该可以实现,不过感觉不是很好。
即使使用Lazy,这句expression也会在查询Foo的时候出现在sql里面
@Formula("(select m.name from master m where m.code = code)")
@Basic(fetch=FetchType.LAZY)
private String name;
请问有没有其他好的解决办法?
用@transient可以吗?对于第二个问题,请问有什么好的解决办法吗?