我最近注意到很多高端网站直接在其源代码中使用字符,例如:
<q>“Hi there”</q>
Run Code Online (Sandbox Code Playgroud)
而不是:
<q>“Hi there”</q>
Run Code Online (Sandbox Code Playgroud)
哪个是首选?我过去总是使用实体,但直接使用该字符似乎更具可读性,并且在Unicode文档中似乎没问题.
我正在开发一个iPhone应用程序,在一个特定的视图中,我需要加载两个不同的实体:一个将填充一个UITableView,另一个将填充一个UITextView.
是否可以使用单个属性获取这两个属性NSFetchedResultsController?
或者我需要使用两种不同的NSFetchedResultsControllers?
关于如何最好地解决这个问题的任何想法?
使用Hibernate,您可以将Entity类加载为:
sessionFactory = new AnnotationConfiguration()
.addPackage("test.animals")
.addAnnotatedClass(Flight.class)
.addAnnotatedClass(Sky.class)
.addAnnotatedClass(Person.class)
.addAnnotatedClass(Dog.class);
Run Code Online (Sandbox Code Playgroud)
有没有办法做同样的事情 - 以编程方式加载您的实体类 - 以符合JPA 2.0的方式?
这个问题的原因是因为我想动态加载我的Entity类,因此不一定以编程方式.
你有一个Hibernate实体的公共基类,即具有id,version和其他常见属性的MappedSuperclass吗?有什么缺点吗?
例:
@MappedSuperclass()
public class BaseEntity {
private Long id;
private Long version;
...
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {return id;}
public void setId(Long id) {this.id = id;}
@Version
public Long getVersion() {return version;}
...
// Common properties
@Temporal(TemporalType.TIMESTAMP)
public Date creationDate() {return creationDate;}
...
}
@Entity
public class Customer extends BaseEntity {
private String customerName;
...
}
Run Code Online (Sandbox Code Playgroud) 我们有一个简单的LINQ-to-Entities查询,它应该从特定页面返回特定数量的元素.请求的示例可以是:
var query = from r in records
orderby r.createdDate descending
select new MyObject()
{ ... };
//Parameters: pageId = 8, countPerPage = 10
List<MyObject> list = query.Skip(pageId * countPerPage).Take(countPerPage);
Run Code Online (Sandbox Code Playgroud)
上面的示例在大多数情况下都很有效,但有时候列表中有10个以上的元素.这似乎并不总是正确的,取决于数据库数据.例如,当我们请求页面10并将countPerPage作为10时,我们得到10个元素.但是当我们请求页面12并将countPerPage传递为10时,我们得到了11个元素.然后,当我们要求第21页时,我们再次获得10个元素.
这有什么可能的原因吗?
更新:查询,当然,并不像在示例中那么简单,并包含子查询.
这是一个更完整的例子:
var elementsQuery = from m in entityContext.elements
where m.elementSearchText.Contains(filter)
orderby m.CreatedDate descending
select new DataContracts.ElementForWeb()
{
FirstName = m.FirstName,
LastName = m.LastName,
Photos = (from p in m.Photos select p.ID),
PlacesCount = m.Childs.Where(x => x.Place != null).Count() + ((m.MainChild != null)?1:0),
SubElements = (
from t …Run Code Online (Sandbox Code Playgroud) 函数式编程提升了不可变类和引用透明性.
域驱动设计由Value Object(不可变)和Entities(可变)组成.
我们应该创建不可变实体而不是可变实体吗?
让我们假设,项目使用Scala作为主要语言,如果我们处理并发,我们如何编写实体作为案例类(不可变),而不会有过时状态的风险?
什么是好习惯?保持实体可变(var字段等...)并避免使用案例类的优秀语法?
Android Java中有一个String.如何将其更改为另一个定编码和替换HTML实体,如&用&?
这样可以正确显示国际符号.
遵循Doctrine准则,我了解如何为实体设置默认值,但如果我想要日期/时间戳怎么办?
我的问题是我的数据库在字段上有一个默认的NOW()但是当我使用Doctrine插入记录时,值为null或空白但插入的其余部分发生了.
此外,由于Doctrine声称将默认值声明为const,这也会产生问题.
建议?
我很难找到一种方法来使用Doctrine2作为ORM在Symfony2中的bundle中适当地扩展实体.
目前,我发现有三种方法可以使用Doctrine2作为ORM在Symfony2中扩展实体.Mapped Superclass,Single Table Inheritance和Class Table Inheritance.这些都不适用于我想要做的事情.
我有两个Bundle:UserBundle和BlogBundle.我希望能够在没有BlogBundle的项目中使用UserBundle,但BlogBundle将始终用于具有User Bundle的项目中.如果BlogBundle依赖于UserBundle,那就没问题,但不是相反.
我有两个实体: BlogBundle\Entity\Post和UserBundle\Entity\User
关系: 用户和博客帖子之间需要有一对多的关系.这是通过BlogBundle\Entity\Post对象(表)上的Author_ID属性(列)实现的,该对象映射到UserBundle\Entity\User.id
问题: 我可以直接从BlogBundle中调用UserBundle\Entity\User实体,并使用Uni-Directional映射实现我正在寻找的东西.这不允许我从User对象中访问用户的所有帖子.我可以通过自定义查询访问数据,但这不像用户通过用户对象访问帖子那样干净.
我想要做的是从BlogBundle中扩展UserBundle\Entity\User对象,并将方法和属性添加到此对象,以建立BlogBundle中使用的一对多映射.这些都没有持久化,它只是定义了关系,并允许我逻辑上访问用户在实现BlogBundle和UserBundle的应用程序中创建的所有帖子,方法是向博客包中的User对象添加所需的功能(从而避免依赖从UserBundle到BlogBundle).
当我创建BlogBundle\Entity\User对象并扩展UserBundle\Entity\User时,我必须声明@ORM\Table(name ="usertablename").如果不这样做,任何访问BlogBundle\Entity\User对象的尝试都将无法访问数据库.由于扩展对象中没有任何添加内容持续存在,因此在捆绑包中可以正常工作.这个问题是当我调用"php app/console doctrine:schema:update --force"时,由于两个实体试图映射到&创建同一个表,因此存在冲突.我已经尝试使用最近实现的ResolveTargetEntityListener功能,但这与Mapped Superclas,STI和CTI一起强制从UserBundle强制依赖BlogBundle.
以下是我的目标,以帮助说明我的设置.它们的缩写是为了清楚起见.我意识到一些语义不正确,但它的目的是传达思想和配置.
UserBundle \实体\用户
@ORM\Table(name="app_user")
@ORM\Entity
class User implements UserInterface
{
...
}
Run Code Online (Sandbox Code Playgroud)
BlogBundle \实体\帖子
@ORM\Table(name="app_post")
@ORM\Entity
class Post
{
...
@ORM\Column(name="author_id", type="integer")
protected $author_id;
@ORM\ManyToOne(targetEntity="\App\BlogBundle\Entity\User", inversedBy="posts")
@ORM\JoinColumn(name="author_id", referencedColumnName="id")
protected $author;
}
Run Code Online (Sandbox Code Playgroud)
BlogBundle \实体\用户
use App\UserBundle\Entity\User as BaseUser
@ORM\Entity
@ORM\table(name="app_user")
class User extends BaseUser
{
....
@ORM\OneToMany(targetEntity="App\BlogBundle\Entity\Post", mappedBy="author")
protected $posts;
public function __construct() …Run Code Online (Sandbox Code Playgroud)