在hibernate java中使用注释添加lazy = false

时间:2016-07-20 00:39:16

标签: java spring hibernate

我在xml映射文件下面,他们使用了多对一列

  <hibernate-mapping>
    <class name="com.example.offerUser"
         table="offerUser">
      <id name="offerUserId" type="java.lang.Long">
        <column name="OOFER_USER_ID"/>
        <generator class="identity"/>
      </id>
      <many-to-one name="offer"
        class="com.example.offer"
        fetch="select" lazy="false">
        <column name="OFFER_ID"/>
      </many-to-one> 
      <many-to-one name="user"
        class="com.example.User"
        fetch="select" lazy="false">
        <column name="USER_ID"/>
      </many-to-one> 
        </class>
</hibernate-mapping>

这里是注释代码,我用注释替换xml,但是如何在注释中替换lazy =“false”。

@Entity  
@Table(name = "offerUser")

@JsonIgnoreProperties(ignoreUnknown = true)
public class offerUser {


    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "OOFER_USER_ID")  
    private Long offerUserId;

    @ManyToOne(fetch = FetchType.LAZY)
    @Fetch(FetchMode.SELECT)    
    @JoinColumn(name="OFFER_ID")
    private offer offer;

    @ManyToOne(fetch = FetchType.LAZY)
    @Fetch(FetchMode.SELECT)    
    @JoinColumn(name="USER_ID")
    private User user;

}   

我在谷歌搜索过,但我没有提及设置lazy = false的任何内容,而是使用了'Optional = false'。为什么会这样。?请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

在hibernate注释(@ManyToOne)中,默认提取类型为EAGER。