天道酬勤,学无止境

orm

How can I store a Python Enum using Pony ORM?

问题 假设我在这里有这个简单的小 Pony ORM 映射。 内置的 Enum 类是 Python 3.4 的新内容,并向后移植到 2.7。 from enum import Enum from pony.orm import Database, Required class State(Enum): ready = 0 running = 1 errored = 2 if __name__ == '__main__': db = Database('sqlite', ':memory:', create_db=True) class StateTable(db.Entity): state = Required(State) db.generate_mapping(create_tables=True) 当我运行程序时,会引发错误。 TypeError: No database converter found for type <enum 'State'> 这是因为 Pony 不支持映射枚举类型。 当然,这里的解决方法是只存储 Enum 值,并在 Class StateTable 中提供一个 getter 以再次将值转换为 Enum。 但这是乏味且容易出错的。 我也可以只使用另一个 ORM。 如果这个问题变得太令人头疼,也许我会。 但如果可以的话,我宁愿坚持使用 Pony。

2022-05-11 12:39:14    分类:技术分享    python   python-3.x   orm   enums   ponyorm

Migration from Hibernate 3 to 4 slows down startup

问题 我们正在尝试将我们的项目从休眠 3 迁移到休眠 4。一切正常,但问题是启动。 我们不使用 JPA,我们直接使用带有 xml 文件和映射文件的 hibernate。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.informix.jdbc.IfxDriver</property> <property name="hibernate.connection.url">jdbc:informix-sqli://xxx:xxx/xxx:INFORMIXSERVER=xxx</property> <property name="hibernate.connection.username">xxx</property> <property name=

2022-05-10 08:03:10    分类:技术分享    java   performance   hibernate   orm   configuration

JDBI like layer for cassandra

问题 回答1 最新的 Java 驱动程序带有一个对象映射 API。 基本上,您可以注释您的 Java 类: @Table(keyspace = "complex", name = "accounts") public class Account { @PartitionKey private String email; private String name; @Column (name = "addr") @Frozen private Address address; 然后你可以像这样执行典型的 CRUD 操作: Mapper<Account> mapper = new MappingManager(getSession()).mapper(Account.class); Phone phone = new Phone("home", "707-555-3537"); List<Phone> phones = new ArrayList<Phone>(); phones.add(phone); Address address = new Address("25800 Arnold Drive", "Sonoma", 95476, phones); Account account = new Account("John Doe", "jd@example.com"

2022-05-09 16:11:58    分类:技术分享    orm   cassandra   jdbi

Doctrine ORM Custom Column Collation

问题 我正在尝试像在 Doctrine 文档中那样设置自定义列排序规则: http://doctrine-dbal.readthedocs.org/en/latest/reference/schema-representation.html 和 http://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html 使用 @ORM\Column(name="body", type="string", length=140, options={"customSchemaOptions"={"collate"="utf8mb4_unicode_ci"}}) 但是当我更新架构时,它总是回到 utf8_unicode_ci (例如当我手动设置它时)。 有任何想法吗? 回答1 如果您(或其他人)仍然需要,现在已添加,请参阅列注释文档 示例:在注释中: /** * @var string * * @ORM\Column(type="string", length=64, nullable=false, options={"collation":"utf8_bin"}) */ private $code; 在 Yaml 中: Your\Nice\Entity: fields: code: type

2022-05-09 14:42:04    分类:技术分享    symfony   orm   doctrine-orm

Hibernate configuration - session factory scanning?

问题 <hibernate-configuration> <session-factory> <mapping class="com.abc.domain.model.A" /> <mapping class="com.abc.domain.model.B" /> <mapping class="com.abc.domain.model.C" /> <mapping class="com.abc.domain.model.D" /> <mapping class="com.abc.domain.model.E" /> </session-factory> </hibernate-configuration> 回答1 回答2 <mapping assembly="SomeAssemblyName" /> 回答3 我一直在寻找类似的解决方案,并从此处的另一个问题中找到了答案。 您应该使用弹簧来完成这项工作。 创建一个类扩展 复制链接中的代码(这是一个很好的答案,请确保您阅读它)。 到你的新班级。 添加以下内容以将该类映射为应用程序上下文中的 sessionFactory。 bean id="sessionFactory" class="com.foo.EntityScannerSessionFactoryBean"> 回答4 NHibernate 的最佳实践是在构建

2022-05-08 05:57:07    分类:技术分享    java   hibernate   orm   hibernate.cfg.xml

Creating a custom Hibernate UserType - What does isMutable() mean?

问题 我正在为一个项目在 Hibernate 中创建一个自定义 UserType。 在我使用 isMutable 方法之前,它一直相对简单。 我试图弄清楚这种方法在合同方面意味着什么。 这是否意味着我正在为其创建 UserType 的类是不可变的,还是意味着持有对此类实例的引用的对象永远不会指向不同的实例? 我在 Hibernate Community Wiki 中找到了一些返回 true 的示例,因为对象本身是可变的 - http://www.hibernate.org/73.html。 社区 wiki 中的其他示例返回 false 并没有说明原因,即使它们也是可变的。 我检查了JavaDoc,但也不是很清楚。 来自 UserType 的 JavaDoc: public boolean isMutable() Are objects of this type mutable? Returns: boolean 来自 JavaDoc 的类型: public boolean isMutable() Are objects of this type mutable. (With respect to the referencing object ... entities and collections are considered immutable because they

2022-05-07 13:40:39    分类:技术分享    java   hibernate   orm

How to create/call a sql view in Hibernate

问题 这是在document.hbm.xml中创建的视图 <database-object> <create><![CDATA[CREATE VIEW docView AS SELECT * from document; GO]]></create> <drop>DROP VIEW docView</drop> <dialect-scope name='org.hibernate.dialect.SQLServerDialect' /> </database-object> 现在如何在我的方法中调用这个视图 试过这样打电话 Session session = sessFactory.openSession(); Query query = session.createSQLQuery("docView"); List<?> list = query.list(); 结束了 Caused by: java.sql.SQLException: The request for procedure 'docView' failed because 'docView' is a view object. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368) at net

2022-05-07 06:49:18    分类:技术分享    java   sql   hibernate   orm

How to implement batch fetching with Fluent NHibernate when working with Oracle?

问题 我已经尝试在 Oracle 中使用 Future 功能,但 NHibernate 不支持它。 我读过一些关于批量获取功能的文章:http://docs.huihoo.com/hibernate/nhibernate-reference-1.2.0/performance.html 我如何将它与 Fluent NHibernate 一起使用? 应该如何配置? 回答1 为您解答如何使用 fluent 进行批处理: 1) 关于集合 HasMany<MyEntity>(x => x.Entities) .BatchSize(100); 2)在班级层面 public MyEntityMap() { Id(x => x.... ... BatchSize(100); 这对应于 19.1.5。 使用批量获取

2022-05-07 05:01:09    分类:技术分享    c#   oracle   nhibernate   orm   batch-processing

How to access Map field in JPA via JPQL

问题 例如,如果有一个Map类型的@ElementCollection文件,那么如果我尝试获取映射键或值字段,那么如何处理? Class Deal{ ..... private String name; private String department; private DealType type; @AttributeOverrides({ @AttributeOverride(name="value.in.available", column=@Column(name="in_avl")), @AttributeOverride(name="value.in.unavailable", column=@Column(name="in_unv")), @AttributeOverride(name="value.out.available", column=@Column(name="out_avl")), @AttributeOverride(name="value.out.unavailable", column=@Column(name="out_unv")) }) @ElementCollection(fetch = FetchType.EAGER) ...... } 所以如果我试图得到这样的东西 select new SummaryAmount(SUM(t.value

2022-05-06 18:41:11    分类:技术分享    jpa   orm   openjpa

Pony ORM reports record "was updated outside of current transaction" while there is not other transaction

问题 代码很简单,如下: from pony.orm import Required, Set, Optional, PrimaryKey from pony.orm import Database, db_session import time db = Database('mysql', host="localhost", port=3306, user="root", passwd="123456", db="learn_pony") class TryUpdate(db.Entity): _table_ = "try_update_record" t = Required(int, default=0) db.generate_mapping(create_tables=True) @db_session def insert_record(): new_t = TryUpdate() @db_session def update(): t = TryUpdate.get(id=1) print t.t t.t = 0 print t.t if __name__ == "__main__": insert_record() update() pony.orm 报告异常:pony.orm.core.CommitException:对象 TryUpdate[1]

2022-05-06 17:29:16    分类:技术分享    python   orm   transactions   ponyorm