gpt4 book ai didi

java - 生成 Hibernate POJO 类

转载 作者:行者123 更新时间:2023-11-30 11:49:38 24 4
gpt4 key购买 nike

我正在使用 Ant Script 从现有表中生成带有注释的 hibernate pojo 类。我遇到了一个问题。问题是我有两个类 Person 和 Address。这两个类之间存在OneToMany映射。

生成的类包含:

//Person.java
@OneToMany(fetch=FetchType.LAZY)
public Set<Address> getAddresses()
{
return addresses;
}
public void setAddresses(Set<Address> addresses)
{
this.addresses=addresses;
}

//Address.java
@OneToMany(fetch=FetchType.LAZY)
public Person getPerson()
{
return person;
}
public void setPerson(Person person)
{
this.person=person;
}

我遇到了不想生成地址集的情况。有什么方法可以生成没有设置的 POJO。即避免反向映射。请帮忙。提前致谢。

最佳答案

我在这里做一个假设,但我认为你使用 Hibernate Tools for Ant生成实体类。这些工具(据我所知)基于 Hibernate 映射 XML (hbm.xml) 生成类。

I am generating hibernate pojo classes with annotations from existing tables using Ant Script. I am stuck with a problem. Problem is that I am having two classes Person and Address. There is OneToMany mapping between these two classes.

您已经说过 PersonAddress 类,它们是或者至少应该是您数据库中的映射, 是 1:N 关系。 (一个人可以有多个地址,而一个地址只能属于一个人。)因此,您应该有一个 Person.hbm.xmlAddress.hbm.xml 周围某处的文件。这意味着,如果您的映射文件正确,则 Hibernate 工具将生成一个 Set

字段(带有 getter 和 setter 方法),因为它就是这样工作的。

我不是该工具的活跃用户,但据我所知,您有以下选项。

  1. 更改您的表(和映射),使 Person 和 Address 处于1:1 关系(不太酷)。
  2. 如果您只想限制您的客户使用getAddressessetAddresses 方法,那么您可以修改生成的方法的可见性。查看Hibernate Tools Reference Guide's关于 Controlling POJO Code Generation 的部分(尤其是关于 meta 属性的小节)。

(我真的不太了解 Hibernate Tools,所以也许可以通过一些配置完全省略有问题的方法,但这样做确实不合适。)

关于java - 生成 Hibernate POJO 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com