Java 关于Toplink获取策略

Java 关于Toplink获取策略,java,jpa,toplink-essentials,Java,Jpa,Toplink Essentials,我正在为一个Swing项目工作,使用的技术是带有Toplink essentials的netbeans,mysql 我面临的问题是,在调用外键属性的getter集合时,插入发生后,实体对象不会得到更新 我有两张桌子。表一,表二。我在表1中将sno列、id列作为主键,在表2中为外键。通过find方法,我只得到了特定的sno对象(存在于表1中)设置了一些持久化到表2的值&提交了事务 当我通过find方法选择相同的sno对象时&通过bean的getTable2Collection()从表2中获取其集合

我正在为一个Swing项目工作,使用的技术是带有Toplink essentials的netbeans,mysql

我面临的问题是,在调用外键属性的getter集合时,插入发生后,实体对象不会得到更新

我有两张桌子。表一,表二。我在表1中将sno列、id列作为主键,在表2中为外键。通过find方法,我只得到了特定的sno对象(存在于表1中)设置了一些持久化到表2的值&提交了事务

当我通过find方法选择相同的sno对象时&通过bean的getTable2Collection()从表2中获取其集合(因为它已经由toplink essential在bean中创建),我无法获取最新添加的记录,除非显示它的所有其他记录。在我关闭应用程序并打开它之后,新记录在通过上述过程调用相同的sno时被反射

我了解到这是一种延迟抓取,应该有一些方法来更改抓取策略,以使实体对象随着更改而更新。所以请在这方面帮助我

问候,


Chandu

如果您只想尝试快速抓取,您可以在注释中指定抓取方法(如果您使用的是注释),它看起来像

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)

我认为这与懒惰的抓取无关。另外,据我所知,数据库会得到更新。您能否澄清这一点以及如何在Swing应用程序中使用EntityManager?