小编rio*_*son的帖子

为getter和setter使用支持变量

也许这是一个愚蠢的问题,但是,对于C#来说,我是一个新的合适的人(更多来自Java背景)并且在我看到的有关属性的getter和setter的不同示例之间感到困惑.

在某些情况下,代码如下所示:

    private string _something;
    public string Something
    {
        get { return _something; }
        set { _something = value; }
    }
Run Code Online (Sandbox Code Playgroud)

但是,在其他示例中,他们不使用此支持memeber,因此更像是这样:

    public string Something { get; set; }
Run Code Online (Sandbox Code Playgroud)

我没有看到使用这些支持变量(_something)的好处,除非你有一些关于变量设置的复杂逻辑.

我正在使用后一种方法编写我的程序,但想检查我没有错过任何东西.

有人可以解释为什么人们选择做前者吗?这是更好的"良好做法"吗?

非常感谢!

.net c#

10
推荐指数
2
解决办法
4838
查看次数

Hibernate是否总是加载关联的对象,即使它可以为null?

我有一个关于Hibernate的问题.

我有两个具有多对一关系的对象:

例如:对象1:

 public class Person {

 @Basic
 @Column(length = 50)
 protected String name;

 @NotFound(action=NotFoundAction.IGNORE)
 @ManyToOne(fetch = FetchType.EAGER)
 @JoinColumn(name = "groupCode", referencedColumnName = "code", updatable=false)
 protected Group group;

 ...all the getters and setters...
 }
Run Code Online (Sandbox Code Playgroud)

对象2:

 public class Group {
  @Id
  @Basic
  @Column(length = 3, nullable = false)
  protected String code;

  @Basic
  @Column(length = 30, nullable = false)
  protected String groupName;

   @Basic
   @Column(precision = 15, scale = 0)
   protected long exampleFieldId;

   ...rest of code....
  }
Run Code Online (Sandbox Code Playgroud)

我试图让这个例子尽可能简单.我的问题是Person上的关联对象(Group)可以为null.目前,当我加载一个特定的Person并抛出异常时,Hibernate会加载一个Group实例,因为它无法将exampleFieldId设置为null(因为它是一个基本类型).

我可以通过将long更改为Long来停止此错误但是,我会认为Person上的Group对象应该为null,因此首先没有加载Group对象?

有没有人知道Hibernate是否加载了相关对象而不管它是否为空,或者我是否错过了一些重要的注释?

谢谢

java annotations hibernate many-to-one

5
推荐指数
1
解决办法
1721
查看次数

可以在ON DUPLICATE KEY中使用聚合值吗?

我正在尝试编写类似于的查询:

INSERT INTO SomeTable(field1, field2) 
SELECT 'blah' AS field1, 
        MAX(AnotherTable.number) AS field2
FROM AnotherTable
ON DUPLICATE KEY 
UPDATE field1= 'blah', field2 = MAX(AnotherTable.number)
Run Code Online (Sandbox Code Playgroud)

我收到错误代码:1111无效使用组功能.

阅读MySql文档:

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

感兴趣的是:

" 在ON DUPLICATE KEY UPDATE的值部分中,只要在SELECT部分​​中不使用GROUP BY,就可以引用其他表中的列.一个副作用是您必须在值部分中限定非唯一列名. "

这是我看到的问题吗?我没有在Select语句中专门做GROUP BY,但是通过使用聚合函数(Max),我可能会隐式分组.

如果有人确切知道我是否隐含地进行了GROUP BY,或者如果有任何其他方式我可以获得所需的结果,那么我会非常感激.

mysql sql

4
推荐指数
2
解决办法
1297
查看次数

Hibernate多对一更新外键为null

我想让我的@OneToMany和@ManyToOne关系正确.

第1类:

@Entity
public class IdeaProfile {

@Id
@GeneratedValue
private int ideaProfileId;

private String name;

Date dateConcieved;

@OneToOne
@JoinColumn(name="statusCode")  
private Status status;


@OneToMany(fetch=FetchType.EAGER, targetEntity=Pitch.class, cascade=CascadeType.ALL)
@JoinColumn(name = "ideaProfileId") 
private List<Pitch> pitchs;

    ....getters and setters....
Run Code Online (Sandbox Code Playgroud)

等级2:

@Entity
public class Pitch {

@Id
@GeneratedValue
private int id;

@ManyToOne
@JoinColumn(name = "ideaProfileId")
private IdeaProfile ideaProfile;

private Date date;

private String notes;

 ....getters and setters....
Run Code Online (Sandbox Code Playgroud)

当我加载或保存新记录时,这种关系似乎正常工作:

Hibernate: insert into IdeaProfile (dateConcieved, genreCode, name, statusCode) values (?, ?, ?, ?)
Hibernate: insert into Pitch (date, …
Run Code Online (Sandbox Code Playgroud)

java hibernate one-to-many many-to-one

3
推荐指数
1
解决办法
3万
查看次数

尝试使用带有通用参数的模拟 python 存根函数时出错

我一直在看,在 Python 中看不到任何与我有相同问题的人。

我很可能在这里很愚蠢,但我试图找出一个需要几个参数的方法。在我的测试中,我只想返回一个值而不考虑参数(即对于每个调用只返回相同的值)。因此,我一直在尝试使用“通用”参数,但显然我做错了什么。

任何人都可以发现我的问题吗?

from mockito import mock, when

class MyClass():

    def myfunction(self, list1, list2, str1, str2):
        #some logic
        return []


def testedFunction(myClass):
    # Logic I actually want to test but in this example who cares...
     return myClass.myfunction(["foo", "bar"], [1,2,3], "string1", "string2")

mockReturn = [ "a", "b", "c" ]

myMock = mock(MyClass)
when(myMock).myfunction(any(list), any(list), any(str), any(str)).thenReturn(mockReturn)

results = testedFunction(myMock)

# Assert the test
Run Code Online (Sandbox Code Playgroud)

我已经设法在上面非常基本的代码中复制了我的问题。在这里,我只想为任何参数集存根 MyClass.myfunction。如果我不考虑参数 - 即:

when(myMock).myfunction().thenReturn(mockReturn) 
Run Code Online (Sandbox Code Playgroud)

然后没有任何返回(因此存根不起作用)。但是,使用“通用参数”会出现以下错误:

     when(myMock).myfunction(any(list), any(list), any(str), any(str)).thenReturn(mockReturn)
TypeError: 'type' object is not iterable …
Run Code Online (Sandbox Code Playgroud)

python typeerror mockito stubbing python-2.7

1
推荐指数
1
解决办法
1414
查看次数