Tag: orm

JPA – 坚持一对多的关系

也许这是一个愚蠢的问题,但它正在扰乱我。 我有一个双向的一对多员工对车辆的关系。 当我第一次坚持雇员在数据库(即它没有分配的ID),我也希望其相关的车辆坚持。 这对我来说很好,除了我保存的Vehicle实体没有自动映射关联的Employee,而在数据库中,Vehicle表中的employee_id外键列为空。 我的问题是,是否有可能让车辆的员工在员工持续的同时坚持? 我意识到,雇员将需要先保存,然后车辆保存之后。 JPA能自动为我做这个吗? 或者我必须做如下的事情: Vehicle vehicle1 = new Vehicle(); Set<Vehicle> vehicles = new HashSet<Vehicle>(); vehicles.add(vehicle1); Employee newEmployee = new Employee("matt"); newEmployee.setVehicles(vehicles); Employee savedEmployee = employeeDao.persistOrMerge(newEmployee); vehicle1.setAssociatedEmployee(savedEmployee); vehicleDao.persistOrMerge(vehicle1); 谢谢! 编辑:按要求,这是我的映射(没有所有其他方法等) @Entity public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="employee_id") private Long id; @OneToMany(mappedBy="associatedEmployee", cascade=CascadeType.ALL) private Set<Vehicle> vehicles; … } @Entity public […]

如何使用JPA2的@Cacheable而不是Hibernate的@Cache

通常,我使用Hibernate的@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)来caching一个@Entity类,它运行良好。 在JPA2中,还有另外一个@Cacheable注释,看起来和Hibernate的@Cache有相同的function。 为了让我的实体类独立于Hibernate的包,我想试试看。 但是我不能使它工作。 每次简单的ID查询仍然击中数据库。 谁能告诉我哪里出了问题? 谢谢。 实体类: @Entity //@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @Cacheable(true) public class User implements Serializable { // properties } testing课: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:app.xml"}) @TransactionConfiguration(transactionManager="transactionManager") public class UserCacheTest { @Inject protected UserDao userDao; @Transactional @Test public void testGet1() { assertNotNull(userDao.get(2L)); } @Transactional @Test public void testGet2() { assertNotNull(userDao.get(2L)); } @Transactional @Test public […]

在Doctrine 2中指定小数字段types时,规模和精度是什么意思?

我创build了一个十进制字段,以在Doctrine2中为我的Symfony2应用程序保存财务数据。 目前看起来像这样: /** * @ORM\Column(type="decimal") */ protected $rate; 当我input一个值,并且所述值被持久化到数据库时,它被舍入到一个整数。 我猜我需要设置字段的精度和缩放types,但是我需要某个人来解释他们到底做了什么? Doctrine2文档说: 精度:十进制(精确数字)列的精度(仅适用于小数列) scale:小数(精确数字)列的比例(仅适用于小数列) 但是这并没有告诉我很多。 我猜精度是四舍五入的小数位数,所以我认为应该是2,但是什么是规模? 规模是有意义的数字? 我的领域宣言应该是这个吗? : – /** * @ORM\Column(type="decimal", precision=2, scale=4) */ protected $rate;

如何首先在Entity Framework 4代码中映射组合主键?

我正在处理EF4代码,并喜欢它到目前为止。 但是,我有一个实体映射到复合主键的表。 我试过的configuration如下所示: public SubscriptionUserConfiguration() { Property(u => u.SubscriptionID).IsIdentity(); Property(u => u.UserName).IsIdentity(); } 哪个引发此exception:无法推断实体types“SubscriptionUser”的键。 我错过了什么?

内存泄漏Symfony2 Doctrine2 /超出内存限制

实际上我对symfony2和doctrine2的组合有很多麻烦。 我必须处理大量的数据集(大约2-3百万次的写入和读取),并且需要做很多额外的工作以避免内存不足。 我想出了两个要点,即“泄漏”内存(他们实际上不是真正的泄漏,而是分配很多) Entitymanager实体存储(我不知道这个真实的名字),它似乎像保持所有处理entites,你必须清除这个存储regulary $ entityManager->明确的() Doctrine QueryCache – 它caching所有使用的查询,我发现唯一的configuration是你能够决定你想要使用什么types的caching。 我没有find一个全局禁用既不是一个有用的标志为每个查询来禁用它。 所以通常使用函数禁用每个查询对象 $ qb = $ repository-> createQueryBuilder($ a); $ query = $ qb-> getQuery(); $查询 – > useQueryCache(假); $查询 – >执行(); 所以..这就是我现在想通了..我的问题是: 有没有简单的方法来拒绝Entitymanagerstorage的一些对象? 有没有办法在entitymanager中设置querycache的使用? 我可以在symonfony教义configuration中configuration这个caching行为吗? 如果有人对我有一些不错的提示,会很酷。否则,这可能会帮助一些菜鸟。 CYA

Django:显示/日志python shell中的ORM sql调用

使用优秀的Django的Devserver我在我的代码中find各种有趣和意外的SQL调用。 我想find调用来自哪里,所以我正在寻找一种方法来获取由Python shell中Django ORM生成的所有SQL调用的日志或打印输出。 也就是说,当我通过Python shell进行Django ORM调用时,我希望看到打印出来或logging了结果SQL。 我注意到几个解决scheme,将日志信息添加到HTML页面。 有没有简单的方法转储到命令行呢?

如何在Django模型上存储字典?

我需要在Django模型中存储一些数据。 这些数据不等于模型的所有实例。 起初,我想了解这个模型的子类,但我试图保持应用程序的灵活性。 如果我使用子类,每次需要一个新types的对象,我都需要创build一个完整的类,这是不好的。 我也将结束很多子类只存储一对额外的领域。 我真的觉得字典是最好的方法,但是在Django文档中没有关于在Django模型中存储字典的信息(或者我找不到它)。 任何线索?

Eclipse不能识别persistence.xml的内容

Im在eclipse中得到以下错误: persistence.xml文件没有识别的内容。 我的persistence.xml文件在我的应用程序中效果很好,但eclipse不断给我这个错误。 移动文件并使用m2eclipse更新我的项目configuration后,我得到了这个。 我没有改变文件本身。 有人知道如何解决这个问题? persistence.xml中: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="localDB" transaction-type="RESOURCE_LOCAL"> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <class>package.Users</class> <properties> <!– enable warnings for debugging –> <property name="openjpa.Log" value="DefaultLevel=TRACE, Runtime=INFO, Tool=INFO, SQL=TRACE"/> <!– connection properties –> <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/test"/> <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/> <property name="openjpa.ConnectionUserName" value="root"/> <property name="openjpa.ConnectionPassword" value=""/> </properties> </persistence-unit> </persistence> 更新 看起来像m2eclipse与jpa结合的bug。 […]

是否有可能从数据库中生成Django模型?

我一直在与Django和Django ORM在家里搞混,我不得不说,我觉得这是在易用性方面最好的之一。 但是,我想知道是否有可能在“反向”使用它。 基本上我想要做的是从现有的数据库模式(从不使用django,是相当古老的项目)生成Django模型。 这可能吗? 更新:有问题的数据库是Oracle

什么是JPA中使用的referencedColumnName?

在JPA中有一个名为referencedColumnName的属性,可以在@JoinColumn, @PrimaryKeyJoinColumn设置,这个设置背后的想法是什么,有人能给出一个很好的例子来说明这个可以使用的地方吗?