2014-11-23 140 views
0

我已经映射实体在不同的项目相同的一对一映射不同的行为:休眠。

Entity 
@Table(name="user_content") 
public class UserContent { 
    @GenericGenerator(name = "generator", strategy = "foreign", parameters = @Parameter(name = "property", value = "content")) 
    @Id 
    @GeneratedValue(generator = "generator") 
    @Column(name = "content_id", unique = true, nullable = false) 
    private Long contentId; 

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

    @Column(name = "moderate_comment") 
    String moderateComment; 

    @OneToOne(fetch = FetchType.LAZY) 
    @PrimaryKeyJoinColumn 
    Content content; 


    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getModerateComment() { 
     return moderateComment; 
    } 

    public void setModerateComment(String moderateComment) { 
     this.moderateComment = moderateComment; 
    } 

    public Content getContent() { 
     return content; 
    } 

    public void setContent(Content content) { 
     this.content = content; 
    } 
} 

@Entity 
@Table(name = "content") 
public class Content { 
    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "content_id", unique = true, nullable = false) 
    private Long contentId; 


    @OneToOne(fetch = FetchType.LAZY, mappedBy = "content", cascade = CascadeType.ALL) 
    UserContent userContent; 


    public UserContent getUserContent() { 
     return userContent; 
    } 

    public void setUserContent(UserContent userContent) { 
     this.userContent = userContent; 
    } 

    public Long getContentId() { 
     return this.contentId; 
    } 

    public void setContentId(Long id) { 
     this.contentId = id; 
    } 
} 

我有2个项目,我用hibernate.hbm2ddl.auto设置为create。我很困惑,但是这段代码在我的不同项目中创建了不同的数据库。

第一:

enter image description here

预计和期望的行为。

二:
enter image description here

正如你可以看到维吾尔丢失。

我不明白在哪里可以搜索此问题的原因。

Pleasr帮助找到。

回答

0

我浪费了很多时间,最终我注意到,第二瓦里安行不通的,因为下面的依赖关系添加到pom.xml

 <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.6.3.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-commons-annotations</artifactId> 
      <version>3.3.0.ga</version> 
     </dependency> 

后,我消除了他们的 - 关系成为一个创造。