Questions tagged «entity»

在计算机科学中,实体是具有身份并可以唯一确定,保存信息或可以处理的对象。由于该术语具有非常抽象和笼统的含义,因此建议仅将此标签与其他更特定的标签结合使用。

11
如何在实体框架中获取插入实体的ID?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我在Asp.net中遇到实体框架问题。每当将对象添加到数据库时,我都想获取Id值。我怎样才能做到这一点?


18
PersistentObjectException:JPA和Hibernate传递以持久保留的分离实体
我有一个JPA持久对象模型,其中包含多对一关系:一个Account具有许多Transactions。A Transaction有一个Account。 这是一段代码: @Entity public class Transaction { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne(cascade = {CascadeType.ALL},fetch= FetchType.EAGER) private Account fromAccount; .... @Entity public class Account { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToMany(cascade = {CascadeType.ALL},fetch= FetchType.EAGER, mappedBy = "fromAccount") private Set<Transaction> transactions; 我能够创建一个Account对象,向其中添加事务,并Account正确地持久保存该对象。但是,当我创建事务时,使用现有的已经持久化的Account并持久化该Transaction,我得到一个异常: 由以下原因引起:org.hibernate.PersistentObjectException:传递给持久对象的分离实体:org.hibernate.event.internal.DefaultPersistEventListener.onPersist上的com.paulsanwald.Account(DefaultPersistEventListener.java:141) 因此,我能够保留Account包含交易的,但不能保留包含的交易Account。我以为这是因为Account可能未附加,但是此代码仍然给我同样的异常: if (account.getId()!=null) …
237 java  hibernate  jpa  entity  persist 



4
在JPA和Hibernate中,persist()和merge()之间有什么区别?
Hibernate中的persist()和merge()有什么区别? persist() 可以创建UPDATE&INSERT查询,例如: SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); A a=new A(); session.persist(a); a.setName("Mario"); session.flush(); 在这种情况下,将生成查询,如下所示: Hibernate: insert into A (NAME, ID) values (?, ?) Hibernate: update A set NAME=? where ID=? 因此persist()方法可以生成一个插入和一个更新。 现在merge(): SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); Singer singer = new Singer(); singer.setName("Luciano …
119 java  hibernate  jpa  orm  entity 

9
如何通过实体框架按ID删除对象
在我看来,在使用如下所示的实体框架删除对象之前,我必须先检索一个对象 var customer = context.Customers.First(c => c.Id == 1); context.DeleteObject(customer); context.Savechanges(); 所以我需要打两次数据库。有没有更简单的方法?

1
Cascade = {“删除”} VS orphanRemoval = true VS ondelete =“ CASCADE
我尝试收集一些有关以下方法的信息,这些方法是在删除父实体时自动删除子实体的。似乎最常见的方法是使用这三个注释之一:层叠= {“删除”} OR orphanRemoval = true或ondelete =“ CASCADE”。 我对第三个混淆不清:ondelete =“ CASCADE”,因为在教义的官方文档中对此的解释非常稀缺),如果有人可以确认我从我的研究中收集并理解的以下信息,我将非常希望网络和经验... 它能做什么 Cascade = {“ remove”} ==>如果拥有拥有者实体,则删除拥有相反实体的实体。即使您与其他拥有的附属实体有很多关系。 -应该在集合上使用(因此在OneToMany或ManyToMany关系中使用)-ORM中的 实现 orphanRemoval = true ==>当拥有方实体为AND时,将删除反方的实体,并且该实体不再与任何其他拥有方实体连接。(参考 doctrine official_doc -ORM中的实现 -可以与OneToOne,OnetoMany或ManyToMany一起使用 onDelete =“ CASCADE” ==>这会将On Delete Cascade添加到数据库中的外键列中 -这种策略有点棘手,但是可以非常强大和快速。(请 参阅doctrine official_doc ...,但尚未阅读更多说明) -ORM要做的工作更少(与前两种方法相比),因此应该具有更好的性能。 其他信息 -所有这三种方式都是在双向关系实体上实现的(右???) -使用cascade = {“ remove”}完全绕过onDelete = CASCADE上的任何外键。(参考doctrine_official_doc) 有关如何在代码中使用它的示例 orphanRemoval和cascade = {“ …

15
EF 4.1异常“提供程序未返回ProviderManifestToken字符串”
我正在尝试复制在MSDN上找到的示例。我正在使用ASP.NET和EF 4.1(CTP?)。我已经使用NuGet来安装EntityFramework软件包。 我收到此错误:The provider did not return a ProviderManifestToken string...并且从未创建数据库。 这是我的连接字符串: <add name="HospitalContext" connectionString= "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;" providerName="System.Data.SqlClient"/> 这是我的代码: var pat = new Patient { Name = "Shane123132524356436435234" }; db.Patients.Add(pat); var labResult = new LabResult { Result = "bad", Patient = pat }; int recordAffected = db.SaveChanges(); 这是我的上下文: public …
88 asp.net  sql  entity 

4
实体框架-有没有自动方法而无需Include()来自动加载子实体的方法吗?
有没有办法装饰您的POCO类以自动渴望加载子实体,而不必Include()每次加载它们时都使用它们? 假设我有一辆有轮,门,引擎,保险杠,窗户,排气等复杂类型属性的类车。在我的应用中,我需要从DbContext的20个不同的地方加载汽车,并进行不同的查询,等等。不需要指定每次要加载汽车时都包含所有属性。 我想说 List<Car> cars = db.Car .Where(x => c.Make == "Ford").ToList(); //NOT .Include(x => x.Wheels).Include(x => x.Doors).Include(x => x.Engine).Include(x => x.Bumper).Include(x => x.Windows) foreach(Car car in cars) { //I don't want a null reference here. String myString = car.**Bumper**.Title; } 我可以以某种方式装饰我的POCO类或在我的POCO类中OnModelCreating()设置还是在EF中设置一个配置,以告诉它在加载汽车时仅加载汽车的所有零件?我希望能做到这一点,所以我的理解是将导航属性设置为虚拟。我知道NHibernate支持类似的功能。 只是想知道我是否缺少什么。提前致谢! 干杯, 内森 我喜欢下面的解决方案,但想知道是否可以将对扩展方法的调用嵌套。例如,假设我在Engine上遇到类似的情况,其中有很多我不想包含在所有地方的零件。我可以做这样的事情吗?(我还没有找到一种可行的方法)。这样,如果以后发现Engine需要FuelInjectors,则可以仅将其添加到BuildEngine中,而不必也将其添加到BuildCar中。另外,如果可以嵌套调用,如何嵌套对集合的调用?是否想从BuildCar()中为每个车轮调用BuildWheel()? public static IQueryable<Car> BuildCar(this …



5
Symfony2实体集合-如何添加/删除与现有实体的关联?
1.快速概述 1.1目标 我想要实现的是一个创建/编辑用户工具。可编辑的字段是: 用户名(类型:文本) plainPassword(类型:密码) 电子邮件(类型:电子邮件) 组(类型:集合) avoRoles(类型:集合) 注意:最后一个属性未命名为$ roles,因为我的User类正在扩展FOSUserBundle的User类,并且覆盖角色带来了更多问题。为了避免它们,我只是决定将我的角色集合存储在$ avoRoles下。 1.2用户界面 我的模板包括2个部分: 用户表格 该表显示$ userRepository-> findAllRolesExceptOwnedByUser($ user); 注意:findAllRolesExceptOwnedByUser()是一个自定义存储库函数,返回所有角色的子集(尚未分配给$ user的角色)。 1.3所需功能 1.3.1添加角色: WHEN用户点击“+”(添加)按钮,在角色表 THEN jQuery的删除了从角色表行 和 jQuery的添加新的列表项用户表单(avoRoles名单) 1.3.2删除角色: WHEN用户点击“X”(删除)按钮,用户形式(avoRoles列表) THEN jQuery的删除了从用户的形式(avoRoles列表)列表项 和 jQuery的增加了新的行角色表 1.3.3保存更改: WHEN用户点击“Zapisz”(保存)按钮, 那么用户表单提交的所有字段(用户名,密码,电子邮件,avoRoles,团体) 和 保存avoRoles为角色的实体(多对多关系)的ArrayCollection 和 保存群体的角色实体的ArrayCollection( ManyToMany关系) 注意:只能将现有角色和组分配给用户。如果由于任何原因未找到它们,则该表单不应验证。 2.代码 在本节中,我介绍/或简短描述此操作背后的代码。如果描述不够,您需要查看代码,请告诉我,然后将其粘贴。我并不是一开始就将其全部粘贴,以免向您发送不必要的代码。 2.1用户等级 我的用户类扩展了FOSUserBundle用户类。 namespace Avocode\UserBundle\Entity; use FOS\UserBundle\Entity\User …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.