说我有一个简单的论坛模型:
class User(models.Model):
username = models.CharField(max_length=25)
...
class Topic(models.Model):
user = models.ForeignKey(User)
...
class Post(models.Model):
user = models.ForeignKey(User)
...
Run Code Online (Sandbox Code Playgroud)
现在说我想查看用户子集的每个用户有多少主题和帖子(例如,他们的用户名以"ab"开头).
所以,如果我为每个帖子和主题做一个查询:
User.objects.filter(username_startswith="ab")
.annotate(posts=Count('post'))
.values_list("username","posts")
Run Code Online (Sandbox Code Playgroud)
Yeilds:
[('abe', 5),('abby', 12),...]
Run Code Online (Sandbox Code Playgroud)
和
User.objects.filter(username_startswith="ab")
.annotate(topics=Count('topic'))
.values_list("username","topics")
Run Code Online (Sandbox Code Playgroud)
产量:
[('abe', 2),('abby', 6),...]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试注释两个以获得一个列表时,我得到一些奇怪的东西:
User.objects.filter(username_startswith="ab")
.annotate(posts=Count('post'))
.annotate(topics=Count('topic'))
.values_list("username","posts", "topics")
Run Code Online (Sandbox Code Playgroud)
产量:
[('abe', 10, 10),('abby', 72, 72),...]
Run Code Online (Sandbox Code Playgroud)
为什么主题和帖子成倍增加?我期待这个:
[('abe', 5, 2),('abby', 12, 6),...]
Run Code Online (Sandbox Code Playgroud)
获得正确列表的最佳方法是什么?
我正在尝试添加包级别注释,但我不知道如何做到这一点.赞赏的例子.
我是Spring世界的新手,我开发了一个使用Spring 3.2.1和Hibernate 4.1.9来实现DAO的简单项目.该项目正常工作,但我对在这个DAO的CRUD方法中使用@Transactional Spring注释有一些疑问.
这是实现项目的CRUD操作的类的完整代码:
package org.andrea.myexample.HibernateOnSpring.dao;
import java.util.List;
import org.andrea.myexample.HibernateOnSpring.entity.Person;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.springframework.transaction.annotation.Transactional;
public class PersonDAOImpl implements PersonDAO {
// Factory per la creazione delle sessioni di Hibernate:
private static SessionFactory sessionFactory;
// Metodo Setter per l'iniezione della dipendenza della SessionFactory:
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/** CREATE CRUD Operation:
* Aggiunge un nuovo record rappresentato nella tabella rappresentato …Run Code Online (Sandbox Code Playgroud) 是否有JavaScript注释?
当然JavaScript没有它们,但是有其他库或建议的语言扩展,例如
@type {folder.otherjsmodule.foo}
function(){
foo = folder.otherjsmodule.foo();
...
return foo;
};
Run Code Online (Sandbox Code Playgroud) 我创建了自己的注释类型,如下所示:
public @interface NewAnnotationType {}
Run Code Online (Sandbox Code Playgroud)
并将其附加到班级:
@NewAnnotationType
public class NewClass {
public void DoSomething() {}
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过这样的反射得到类注释:
Class newClass = NewClass.class;
for (Annotation annotation : newClass.getDeclaredAnnotations()) {
System.out.println(annotation.toString());
}
Run Code Online (Sandbox Code Playgroud)
但它不打印任何东西.我究竟做错了什么?
我有一个Enum课程
public enum MyEnum{
ABC;
}
Run Code Online (Sandbox Code Playgroud)
比我的'Mick'班有这个属性
private Map<MyEnum, OtherObj> myMap;
Run Code Online (Sandbox Code Playgroud)
我这个春天的xml配置.
<util:map id="myMap">
<entry key="ABC" value-ref="myObj" />
</util:map>
<bean id="mick" class="com.x.Mick">
<property name="myMap" ref="myMap" />
</bean>
Run Code Online (Sandbox Code Playgroud)
这很好.
我想用Spring注释替换这个xml配置.
您对如何自动装配地图有任何想法吗?
这里的问题是,如果我从xml配置切换到@Autowired注释(在Mick类的myMap属性上),Spring会抛出此异常
nested exception is org.springframework.beans.FatalBeanException: Key type [class com.MyEnum] of map [java.util.Map] must be assignable to [java.lang.String]
Run Code Online (Sandbox Code Playgroud)
Spring不再能够将字符串ABC识别为MyEnum.ABC对象.
任何的想法?
谢谢
以下是代码段.
@Intercepts({@Signature(
type= Executor.class,
method = "update",
args = {MappedStatement.class,Object.class})})
public class
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下@ sign在Java中的含义吗?
注释如何在PHP中有用?我并不是指一般的PHPDoc.
我想,我只想要一个真实世界的例子.
因此,根据@ Max的回答:注释与Abstract Factories完成相同的事情,只通过一行专门的PHPDoc. - hopeseekr 0秒前编辑
我有一个表tbl_sky有2个属性name和model我会使用Hibernate注释等;
@Entity
@Table(name="tbl_sky")
public class Sky implements Serializable {
private String name;
private String model;
private String status;
@Id
public String getName() {
return name;
}
.
.
.
Run Code Online (Sandbox Code Playgroud)
但是我需要添加一个status在表中不存在但在类中需要的属性.我如何声明该属性,以便我在我的类中但不在我的db-table中?
所有帮助表示赞赏.
我正在关注此站点的MVC单元测试说明,但我找不到@Inject注释的jar .有人知道罐子在哪里吗?
annotations ×10
java ×6
spring ×3
hibernate ×2
count ×1
django ×1
enums ×1
javadoc ×1
javascript ×1
oop ×1
package ×1
php ×1
reflection ×1
spring-mvc ×1